gpt4 book ai didi

c - 如何获取每行中的字符数?

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

我需要获取每行中的字符数,然后将其粘贴到另一个文件(学校项目)中,但即使是我的原型(prototype)也已经无法正常工作。

我已经尝试继续查看当我将其粘贴到另一个文件时问题是否自行解决,但它没有用,所以我回到这里。

int main()
{
FILE *fw;
FILE *fr;
int i = 0;
char c;
fr = fopen("vstup.txt","r");
fw = fopen("vystup.txt","w");
while ((c = getc(fr)) != EOF)
{
while ((c = getc(fr)) != '\n')
{
i++;
}
printf("%d\n", i);
}
}

最佳答案

c 必须声明为 int,而不是 charEOF 可能不是有效的 char 值,因此不等式可能永远成功。

你不应该调用 getc() 两次。您永远不会检查第一次调用的结果是否是换行符。

您需要在读取换行符后将i 设置回0,否则您将继续将下一行的长度添加到上一行。

您应该只在读取换行符时打印长度,而不是每次循环都打印。如果最后一行不是以换行符结尾,你应该在循环后打印它的长度;如果完成时 i 不是 0,您就可以判断发生了这种情况。

由于长度应该写入其他文件,因此您应该使用 fprintf()

while ((c=getc(fr)) != EOF) {
if (c == '\n') {
printf("%d\n", i);
i = 0;
} else {
i++;
}
}
if (i != 0) {
fprintf(fw, "%d\n", i);
}

关于c - 如何获取每行中的字符数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56283252/

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