程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> c++-C++小白求大神提攜解惑,是在搞不明白了

c++-C++小白求大神提攜解惑,是在搞不明白了

編輯:編程綜合問答
C++小白求大神提攜解惑,是在搞不明白了

我有一個數據文件,裡面的格式是自己定義的
###################begin##line############################
[C 1 1] [C 1 7] [C 1 8] [C 2 2] [C 2 5] [C 2 6] [C 2 7] [C 2 8] [C 3 3] [C 3 4] [C 3 5] [C 4 4] [C 5 5] [C 6 6] [C 6 7] [C 7 7] [C 8 8]
####################end##line############################
我有下面的問題,想請某位大神指點一下:
1. 我讀取文件時,不知道文件有多少行,上面只是一行樣本,還有很多行,每一行也不知道有多少“[c int int]”這樣的配對,因為int不知道有多大,應該用什麼結構存儲;
2. 讀取時有沒有什麼快捷的讀取方式,我最終想獲取的是“[ ]”裡那兩個int的值。

小弟不勝感激!大拜!

最佳回答:


如果知道每行的最大長度,可以試試

#include <iostream>
#include <vector>
#include <cstring>
using namespace std;
char buffer[MAX_LENGTH+1];
int main(){
    FILE *fp = fopen(?, "r");
        vector<vector<item*>*> *vv = new vector<vector<item*>*>();
    while(feof(fp) == 0){
            vector<item*> *v = new vector<item*>();
        fgets(buffer, MAX_LENGTH+1, fp);
            char *pch = strtok(buffer, " []C");
                long temp = atol(pch);
                pch = strtok(buffer, " []C");
                v->push_back(new item(temp, atol(pch));
        while(pch != NULL){
                    pch = strtok(buffer, " []C");
                    temp = atol(pch);
                pch = strtok(buffer, " []C");
                    v->push_back(new item(temp, atol(pch));
                }
                vv->push_back(v);
        }
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved