对于我的程序的一部分,我必须从一个名为“ options.txt”的文本文件中获取信息。该文件是这样的:
Team number 10 win point 2 draw point 1 lose point -1
我写了这段代码,但它只用零填充了选项数组:
int options[4];
getOptions(){
FILE *filePtr;
if((filePtr=fopen("options.txt","r"))==NULL){
puts("file could not be opened");
} else {
for(i=0;i<4;i++) {
fscanf(filePtr, "%d", &options[i] );
}
const int teamNumber=ayarlar[0]; //first element of the array is teamNumber
struct teams team[teamNumber]; // teamNumber necessary for teams
}
答案 0 :(得分:2)
您可以使用scanf("%*[^-0-9]");
扫描并丢弃所有不是数字或-
的字符。因此,循环如下:
for(i=0;i<4;i++) {
fscanf(filePtr, "%*[-0-9]");
if (fscanf(filePtr, "%d", &options[i] ) != 1)
fprintf(stderr, "error reading file");
}
请注意,在使用任何结果值之前,应始终检查scanf的返回值,以确保成功读取和转换它们。