0
,所以我想從一個文本文件中讀取並把它放在一個變量從文件讀取一個配置
在文本文件中有
NAME= Bame
GAME= Fame
我聽說strsep /的strtok的但我仍然有問題,以及與此代碼我得到分割故障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)。所以,用你的'fgets'替換你的'feof'。 –
'fp = fopen(file,「r」); if(fp == NULL){perror(Error opening file:「); return 1;}' – LPs
另請參見[爲什麼while(!feof(file))總是出錯?](http://stackoverflow.com/questions/5431941 /爲什麼 - 是 - 同時-FEOF文件 - 總是錯的) –