gpt4 book ai didi

c - 行尾字符/回车

转载 作者:太空宇宙 更新时间:2023-11-03 23:27:13 29 4
gpt4 key购买 nike

我正在阅读一个普通的文本文件,并将所有单词作为数字写入另一个文本。当一行结束时,它会查找“换行符 (\n)”并从新行继续。在 Ubuntu 中它可以完美执行,但在 Windows (DevC++) 中它无法运行该功能。我的问题是我阅读的 Windows 中的文本没有换行符。即使我用手换行,我的程序也看不到它。当我想在行尾打印字符时,它说它是一个空格 (ascii = 32),我确信我在行尾。这是我的行尾控制代码,我该怎么做才能修复它?我读到了一个名为“回车 (\r)”的字符,但它也没有解决我的问题。

c = fgetc(fp);
printf("%d", c);
fseek(fp, -1, SEEK_SET);
if(c == '\n' || c == '\r')
fprintf(fp3, "%c%c", '\r', '\n');

最佳答案

如果您正在打开一个文本文件并希望进行换行符转换,请以 "r" 模式而不是 "rb"

打开文件
FILE *fp = fopen(fname, "r");

这将以文本模式而不是二进制模式打开,这是您想要的文本文件。在 Linux 上似乎没有区别,但在 Windows 上,\r\n 将被转换为 \n

看起来可能的解决方案是将文件中的数字直接读入 int 变量。

int n;
fscanf(fp, "%d", &n);

除非换行符对您有重要意义。

关于c - 行尾字符/回车,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23791010/

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