c - 记事本无法识别换行符 '\n',但可以与制表符等其他特殊字符配合使用

标签 c io

我正在尝试使用 fputs() 从键盘读取输入字符串并将其写入程序中名为 dFile.txt 的文本文件中。由于 fputs() 不添加新行,因此我已在代码中显式添加了新行,但是当我检查输出文件时,它没有添加任何新行。我添加了选项卡“\t”只是为了交叉检查记事本是否无法识别任何特殊字符,但它可以正常工作。

#include<stdio.h>
#include<string.h>

int main()
{
    char arr[100];
    FILE *dest;
    dest=fopen("dFile.txt","w");
    puts("enter the string");
    while(strlen(gets(arr))>0)
    {
        fputs(arr,dest);
        fputs("\n",dest);
        fputs("\t",dest);                  
    }
    fclose(dest);
    return 0;
}

最佳答案

记事本将 \r\n(回车符,后跟换行符)识别为换行符。不过,其他一些编辑器可能会像所有 Unix 实用程序一样单独识别 \n

另外(更重要的是):它是 not a good idea to use gets对于未知的输入源。

关于c - 记事本无法识别换行符 '\n',但可以与制表符等其他特殊字符配合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42955164/

相关文章:

c - 为什么我得到 "Segmentation Fault"?

perl - foreach (<$IN>) 是否会读取文件?

Java 将对象转换为字节数组的高效方法

c++ - 在 arm-linux-androideabi-gcc 上使用 c/c++ 宏对 char '#' 进行字符串化

c - 如何计算单个多部分中的部分数量?

c - GCC fatal error : quit. h没有这样的文件或目录

c - 如何将输入格式化为仅接受整数值

将 const char* 转换为 int

javascript - 如何在 Node.js 中使用 readline 将所有输入行放入数组中?

performance - 与 C 相比,Rust 文件 I/O 非常慢。有什么问题吗?