これは、テキストファイルに書き込まれるものです。"123.txt":
[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
これらの数値を配列に取り込むにはどうすればよいですか?
私の考え:
ファイルを開く(もちろん)
何らかの形式のfscanfを使用する
そのfscanfをループの下に配置し、ループの進行に合わせて新しい配列に番号を割り当てます
ファイルを閉じる
これを行う方法についての考えは大歓迎です。お時間をいただきありがとうございます。
編集1:
この質問について厳密に学習する目的で、効率の問題を除外していることに注意してください。また、エラー検出が暗示されていますが、含まれていません。
int* load( const char* filename ) {
int i;
len = 100; // How to find len of array?
array[len];
FILE* fp = fopen( filename, "r" )
while( !feof(fp) ) {
fscanf(fp,"%d, ",&array[i]);
i++;
}
fclose(f1);
return array;
ここのループでの私のコードは終了しません。
scanf関数は一般的にかなり遅いです。私はfreadとstrtokを使います。
stat file get size
allocate buffer
fread to buffer
while not end of buffer
strtok
array[index] = strtoul(buf, 0, 10)
loop
manページのリンクにあるstrtokの良い例http://man7.org/linux/man-pages/man3/strtok.3.html
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加