c++ - FSCANF 阅读撇号和连字符时遇到问题?

标签 c++ c string scanf

     int i = 0;


     while (fscanf(input, "%c", &letter) == 1){

           if(isalpha(letter)) {


           if( letter != '\'' && letter != '-' ) {                                 
           text[i] = tolower(letter);
           i++;
           }                                 

           }

}

我正在尝试从文件中读取一段文本,然后将它们全部以小写形式输出,不带特殊字符或空格。它适用于除 ' 和 - 字符之外的所有内容。在输出上,它们看起来像上面带有 ^ 的 u 和 AE 符号...(我认为 ASCII 值 146 和 150,出于某种原因,我仍然无法用 if 逻辑捕捉。)

是 FSCANF 无法处理这些字符,还是我遗漏了什么?

最佳答案

尝试使用

while((letter = fgetc(input)) != EOF){/***/}

(如果您读取文本文件(不是二进制文件))

关于c++ - FSCANF 阅读撇号和连字符时遇到问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21740535/

相关文章:

c++ - 是否有任何 sqlite API (C API) 替代 BEGIN TRANSACTION 和 COMMIT

string - F# printf 字符串

java - 如何在找到单词时断开字符串

c++ - 常量表达式类型定义

c++ - C++中的二进制文件写入问题

c++ - 在 Qt 中使用字符串创建 QVariantMap

c++ - 返回最短的字符串

c++ - 如何用cin一次存储一个值?

c - 如何列出C中给定目录中的所有子目录?

c - 用于 unix/linux 开发的标准 I/O 库或低级