gpt4 book ai didi

c - 无法从文本文件扫描整数

转载 作者:行者123 更新时间:2023-11-30 20:53:50 30 4
gpt4 key购买 nike

我有一个如下所示的文本文件:

coordinate      size    average Intensity
========== ==== =================
(187,18) 31 217.8
(58,29) 34 212.1
(124,71) 47 216.1
(245,71) 32 197.8
(96,113) 30 191.6
(244,135) 33 199.6

我试图仅接收变量的“大小”,但由于某种原因我无法这样做。这是我尝试过的代码:

FILE * textofGags;
int xx;
fopen_s(&textOfGags,"dust.txt","rt");
fseek(textOfGags,0L,SEEK_SET);
fscanf_s(textOfGags,"%*[^\n]\n,",NULL);
fscanf_s(textOfGags,"%*[^\n]\n,",NULL);
while(fscanf_s(textOfGags,"%d",&xx)==1){
printf("%d",xx);
fscanf_s(textOfGags,"%*[^\n]\n,",NULL);
}

现在我只是尝试打印以查看问题出在哪里,但似乎我什至无法收到该号码。有人可以指出我的错误吗?

最佳答案

我想你因为错误的标签而被否决了:-)不管怎样,我认为我们应该互相帮助。

代码对我来说看起来有点复杂,而且 - 即使使用调试器 - 也可能很难找出 fscanf("%*[^\n]\n,"... 将文件位置实际移动到正确的位置;

我建议逐行读入文件,然后根据每一行的具体内容进行分析,并读入大小。例如,人们可能会利用大小值是结束 ')' 后的第一个整数值这一事实,并且没有这样的 ')' 的行可能会被忽略.

希望有帮助:-)

int main() {

FILE * textofGags;
int xx;
textofGags = fopen("dust.txt","rt");
if (textofGags) {
char line[1000];
while (fgets(line,1000,textofGags)) {

char *closingBrace = strchr(line, ')');
if (!closingBrace)
continue;

closingBrace++; // first char after the ')'
if (sscanf(closingBrace,"%d",&xx) == 1) {
printf("size: %d \n", xx);
}
}
}
}

关于c - 无法从文本文件扫描整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44577181/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com