【发布时间】:2015-01-28 07:29:45
【问题描述】:
我试图创建一个文件来读取包含 CSV 的文本文件。然而出于某种原因,有些 Fscanfs 不返回值,但有些却返回。
FILE* reader;
char OptionOne[30]="";
char OptionTwo[30]="";
char OptionThree[30]="";
char OptionFour[30]="";
char answer[1]="";
char CorrectAnswer[1];
char Question[51];
reader = fopen("C:\\Users\\Finley\\Desktop\\Programming\\QuizMachine\\QuizMachine\\fscanf_questions.txt", "r");
if (reader == NULL)
{
printf("Unable to Open File: %s\n", FileName);
}
fscanf(reader, "%[^,],", Question);
fscanf(reader, "%[^,],", OptionOne);
fscanf(reader, "%[^,],", OptionTwo);
fscanf(reader, "%[^,],", OptionThree);
fscanf(reader, "%[^,],", OptionFour);
fscanf(reader, "%[^,],", answer);
为什么第一个 fscanf 返回一个值,但所有其他 fscanf 都没有返回一个值。我看不到任何东西,它们看起来都一样,格式相同 文件格式是这样的:
你用什么函数来打开文件?,fscanf,fclose,fopen,main,3
以下哪个不是变量类型?,int,float,char,string,4
【问题讨论】:
-
所以我改变了你的建议,但现在它给了我围绕变量 3 损坏的错误堆栈。但前两个确实给出了值
-
@Awkwardowl 了解文件的格式会有所帮助。
-
更新为包含 .txt 文件的格式。
-
这可能是复制+粘贴错误,但您的第一行应该以逗号结尾以使您的程序正常工作(除了我的答案中的更正)。
-
逗号应该在哪里?