c++ - 按字符读取字符串直到行尾 C/​​C++

标签 c++ c string file fgetc

<分区>

如何一次读取一个字符串,并在到达行尾时停止?我正在使用 fgetc 函数从文件中读取并将字符放入数组(后者会将数组更改为 malloc),但不知道如何在到达行尾时停止

试过这个(c 是文件中带有 char 的变量):

if(c=="\0")

但它给出了错误,我无法将指针与整数进行比较

文件长这样(字长未知):

one
two
three

那么问题来了: 1) 我可以将 c 与\0 进行比较吗,因为\0 是两个符号(\和 0)还是算作一个(与\n 相同的问题) 2)也许我应该使用\n ? 3)如果上面的建议是错误的,你会建议什么(注意我当时必须读字符串一个字符)

(注意我是 C++ 的新手(并且自己编程))

最佳答案

您想使用单引号:

if(c=='\0')

双引号 (") 用于字符串,字符串是字符序列。单引号 (') 用于单个字符。

但是,行尾由换行符表示,即'\n'。

请注意,在这两种情况下,反斜杠都不是字符的一部分,而只是表示特殊字符的一种方式。使用反斜杠,您可以表示各种不可打印的字符以及否则会使编译器感到困惑的字符。

关于c++ - 按字符读取字符串直到行尾 C/​​C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23726724/

相关文章:

c - 逐行分析 i386 汇编函数...

c# - 从扫描仪(类似键盘)设备获取输入字符串 C# .net

c - 反转字符串 C

c++ - 删除 cout 会导致段错误

c++ - C中的返回值优化和复制省略

c++ - "no match for ' operator<< ' in ' std::operator<< '"在Linux下编译时出错,VS不会出现这个错误

c - 我的 C 程序出现问题 : compilation error occurs

Java Array Char 和 String 数组中的区别

c++ - tr1::randgen() 上的竞争条件,即使使用 #pragma omp critical

c++ - 何时使用 fabsf 而不是 fabs