我想将int
存储到我的结构中的correctAnswer
变量中,但它已保存为另一种类型,因此我希望将其与{{1}进行比较}。如何修改以下代码,以便将其另存为int
?
int
我想这应该是fscanf(file, "%[^;]", &questionArray[i].correctAnswer);
。
此外,确切地在"%d[^;]"
保存了哪种数据类型?
关于分号,它是因为" correctAnswer"位于该行的末尾。
答案 0 :(得分:1)
fscanf(file, "%d;", &questionArray[i].correctAnswer);
因为它会将数据读取为整数,并且还会使用尾随分号“;”
答案 1 :(得分:0)
首次使用fgets()
时,文件输入更易于处理和检测问题。
阅读fgets()
行,然后解析。
// 1: Success - save number in an `int`
// O: Bad format
// EOF: No more data
int get_answer(FILE *file, int *x) {
char buffer[100];
if (fgets(buffer, sizeof buffer, file) == NULL) return EOF;
if (sscanf(buffer, "%*[^;];%d", x) == 1) return 1;
return 0;
}
"%*[^;]
读取并保存除;
以外的任何字符至少必须存在1个此类字符才能进入下一步。
";"
阅读并不保存';'
"%d"
阅读并保存int