gpt4 book ai didi

c - 从 C 中的文本文件中查找并保存一个整数

转载 作者:太空宇宙 更新时间:2023-11-04 06:50:40 26 4
gpt4 key购买 nike

我是编程和 C 的新手。我有一些文本文件,其中包含一些随机文本和一个整数,我想查找并保存这些文本文件。文本文件看起来像这样(在这种情况下我只想保存 23,而不是 56):

# this is a comment
23
this is some random text
56

这是我的代码:

    int *num = malloc(sizeof(int));
*num = fgetc(f);

while(!feof(f)){
*num = fgetc(f);
if(isdigit(*num)){
break;
}
}

if(!isdigit(*num)){
printf("Error: no number found.\n");
free(num);
}
else{
printf("%c\n", *num);
}

我现在有点卡住了,我的程序只打印出数字 2:/非常感谢您的帮助。

最佳答案

正如@pbn 所说,您最好使用 sscanf

但是如果你真的、真的想要,你可以按照你的方式来做,一次读取一个字符,但是你需要自己“构建”整数,将字符转换为整数,跟踪你的内容有,然后乘以 10 的幂,即你已经拥有的数字的每一位。

类似这样的东西(不是完整的代码,只是为了让你开始):

int c;
int num = 0;

while (c = fgetc(f)) {
if(!isdigit(c)) {
break;
}
num = (num * 10) + (c - '0');
}

c- '0' 部分是将整数的文本表示形式转换为整数本身。 0 是字符 48,1 是 49 等等。

这是假设在数字行中只有数字,而不是数字和非数字字符的混合。

另外,不要使用 !feof(file) .

关于c - 从 C 中的文本文件中查找并保存一个整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51838026/

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