0
だから私は、テキストファイルから読み込むと、私はstrsep/strtokは聞いたファイルから設定を読み込む
NAME= Bame
GAME= Fame
があるテキストファイルに変数
に入れしようとしていますしかし、私はまだ問題を抱えていると、このコードで私は取得セグメンテーションフォールト主な問題は、このラインからである11
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
int main() {
char *token;
char *string;
char *tofree;
FILE *fp;
const char *file = "/tmp/test.txt";
fp = fopen(file, "r");
while(!feof(fp)) {
fgets(string, sizeof(string), fp);
token = strsep(&string, ",");
printf("%s", string);
}
fclose(fp);
exit(0);
}
'char * string;'は_文字列ではありません。これは、初期化されていないので、「どこにもない」を指し示す 'char'へのポインタです。この初期化されていないポインタに書き込み、UBを呼び出します。したがって、クラッシュ。文字配列を使って修正してください: 'char string [100];' [なぜwhile(!feof(file))が常に間違っているのですか?](http://stackoverflow.com/questions/5431941/why-is-while-feof-file-always-wrong)も参照してください。したがって、あなたの 'feof'を' fgets'で置き換えてください。 –
'fp = fopen(file、" r "); – LPs
も参照してください。[なぜwhile(!feof(file))が常に間違っているのですか?](http://stackoverflow.com/questions)/5431941/why-is-feof-file-always-wrong) –