\c 中的 377 个字符

2023-11-23

我正在尝试读取 c 中的文件。 我有一个 .txt 文件,它的内容如下:

文件一.txt 文件二.txt 文件三.txt 文件四.txt

当我尝试使用 fopen 读取此文件时,我得到以下输出:

文件一.txt 文件二.txt 文件三.txt 文件四.txt\377

\377 是什么意思?这是我的代码。

    #include <stdio.h>

    #include <stdlib.h>

    int main(int argc, const char * argv[]){

        FILE *filelist;

        char ch;

        filelist=fopen("file-path", "rt");

        while (!feof(filelist)) {
            ch = getc(filelist);
            printf("%c",ch);
        }

        fclose(filelist);

        return 0;
    }

The getc()函数返回类型的结果int,不是类型char. Your char ch;应该int ch;.

为什么它返回一个int?因为它返回的值是either它刚刚读取的字符(作为unsigned char转换成int) or特殊价值EOF(通常为 -1)指示输入错误或文件结束条件。

不要使用feof()函数来检测输入的结束。只返回trueafter你已经没有输入了。您最后一次致电getc()正在返回EOF,当存储到char对象被转换为(char)-1,这通常是'\377'.

另一个问题是feof() will never如果输入错误,则返回真值;在这种情况下,ferror()将返回 true。使用feof() and/or ferror() after getc()回报EOF, 告诉why它回来了EOF.

要从文件中读取直到到达结尾:

int ch;
while ((ch = getc(filelist)) != EOF) {
    /* ch contains the last character read; do what you like with it */
}

建议阅读:第 12 节comp.lang.c 常见问题解答.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

\c 中的 377 个字符 的相关文章

  • 从 Invoke 方法获取 RETURN

    我正在尝试从另一个线程上的列表框项目中读取值 我尝试创建一种新方法来运行调用命令 我可以设法将命令发送到列表框 例如通过调用方法添加 但我似乎无法得到响应 我似乎无法获取该项目的值 我尝试了几种方法 一旦我将它从空变为字符串 事情就开始变得
  • C# 和月历,选择多个日期

    我正在制作一个程序 可以帮助人们用 C 为某个部门 预订 订单 他们需要能够选择不同月份的多个日期 我更愿意拥有它 这样他们就可以单击一个日期 然后按住 Shift 键单击另一个日期以选择这两个日期之间的所有日期 并控制单击以进行单选 取消
  • 如何调整 Windows 窗体以适应任何屏幕分辨率?

    我知道这是重复的问题 但我检查了所有其他相关问题 他们的答案没有帮助 结果仍然与屏幕截图 2 中所示相同 我是 C Windows 窗体新手 如截图1所示 我有Form1有一些控件 每组控件都放在一个面板中 我在 PC1 中设计了应用程序
  • PrivateObject 找不到属性

    我的结构基本上如下所示 abstract class A protected string Identificator get set private void DoSomething DoSomethingSpecific protect
  • C 类型命名约定,_t 或 ALLCAPS

    我一直想知道是否有任何命名约定 例如何时对类型使用全部大写以及何时追加 t 什么时候不使用任何东西 我知道当时 K R 发布了各种有关如何使用 C 的文档 但我找不到任何相关内容 在 C 标准库类型中 t看起来漂亮占主导地位 time t
  • 检测 TextBox 中的 Tab 键按下

    I am trying to detect the Tab key press in a TextBox I know that the Tab key does not trigger the KeyDown KeyUp or the K
  • 为什么 std::function 不是有效的模板参数,而函数指针却是?

    我已经定义了名为的类模板CallBackAtInit其唯一目的是在初始化时调用函数 构造函数 该函数在模板参数中指定 问题是模板不接受std function作为参数 但它们接受函数指针 为什么 这是我的代码 include
  • 如何使用 C# 查询远程 MS ACCESS .mdb 数据库

    我正在尝试使用 C 查询 mote MS ACCESS 数据库 mdb 文件 将文件复制到本地计算机时可以成功查询它 我只想远程放置文件 所以我的客户端程序不包含原始数据 static string m path http www xyz
  • 如何在 EF Core 2.1 中定义外键关系

    我的 DAL 使用 EF Core 2 1 这就是我的模型的样子 一名用户只能拥有一种角色 Role entity kind of master public class Role public int RoleId get set pub
  • 在 C++ 代码 gdb 中回溯指针

    我在运行 C 应用程序时遇到段错误 在 gdb 中 它显示我的一个指针位置已损坏 但我在应用程序期间创建了 10 万个这样的对象指针 我怎样才能看到导致崩溃的一个 我可以在 bt 命令中执行任何操作来查看该指针的生命周期吗 谢谢 鲁奇 据我
  • 如何对STL向量进行排序?

    我想排序一个vector vector
  • 在 mvc4 中创建通用 mvc 视图

    我以前也提过类似的问题 没有得到答案 如何创建一个通用的 mvc4 视图 该视图可以显示传递给它的模型列表或单个模型 模型可以是个人 组织或团体 无论传递给它的是什么 如果您正在寻找类似的东西 model MyViewModel
  • 在 Qt 中播放通知(频率 x)声音 - 最简单的方法?

    Qt 5 1 或更高版本 我需要播放频率为 x 的通知声音 n 毫秒 如果我能像这样组合音调那就太好了 1000Hz 持续 2 秒 然后 3000Hz 持续 1 秒 最简单的方法是使用文件 WAV MP3 例如如此处所述 如何用Qt播放声音
  • 将日期时间显示为 MM/dd/yyyy HH:mm 格式 C#

    在数据库中 日期时间以 MM dd yyyy HH mm ss 格式存储 但是 我想以 MM dd yyyy HH mm 格式显示日期时间 我通过使用 String Format 进行了尝试 txtCampaignStartDate Tex
  • 不使用放置 new 返回的指针时的 C++ 严格别名

    这可能会导致未定义的行为吗 uint8 t storage 4 We assume storage is properly aligned here int32 t intPtr new void storage int32 t 4 I k
  • 当 Verb="runas" 时设置 ProcessStartInfo.EnvironmentVariables

    我正在开发一个 C 应用程序 我需要创建变量并将其传递给新进程 我正在使用ProcessStartInfo EnvironmentVariables 新进程必须提升运行 因此我使用 Verb runas var startInfo new
  • 解释这段代码的工作原理;子进程如何返回值以及在哪里返回值?

    我不明白子进程如何返回该值以及返回给谁 输出为 6 7 问题来源 http www cs utexas edu mwalfish classes s11 cs372h hw sol1 html http www cs utexas edu
  • 使用 boost 异步发送和接收自定义数据包?

    我正在尝试使用 boost 异步发送和接收自定义数据包 根据我当前的实现 我有一些问题 tcpclient cpp include tcpclient h include
  • 在 C 中使用 #define 没有任何价值

    If a define没有任何价值地使用 例如 define COMMAND SPI 默认值是0吗 不 它的评估结果为零 从字面上看 该符号被替换为空 然而 一旦你有了 define FOO 预处理器条件 ifdef FOO现在将是真的 另
  • Unity,c++ 本机插件字节数组不匹配

    在我的 C 本机插件中 我有一个调用 vector

随机推荐

  • DISTINCT 仅适用于一列

    假设我有以下查询 SELECT ID Email ProductName ProductModel FROM Products 如何修改它以便它不返回重复的电子邮件 换句话说 当多行包含相同的电子邮件时 我希望结果仅包含其中一行 最好是最后
  • 计算“组特征”,无需 ddply 和 merge

    我想知道是否有比我通常采用的方法更直接的方法来计算某种类型的变量 下面的例子可能最好地解释了这一点 我有一个包含 2 列的数据框 水果以及水果是否腐烂 我想为每一行添加例如同一类别的水果腐烂的百分比 例如 有 4 个苹果条目 其中 2 个已
  • 如何让 ArrayList 和 Scanner 配合得很好?

    import java util public class CyclicShiftApp public static void main String args Scanner scan new Scanner System in Arra
  • 将类名存储在类变量中而不输入类名?

    在Python类的实例方法中 我知道我们可以通过以下方式获取类名self class name 但是 我想将类的名称存储在类变量中 而不对类的名称进行编码 我知道我可以这样做来将类的名称放入类变量中 class MyClass object
  • 从ajax和ActionResult下载文件

    我想使用 ajax 和 ActionResult 在浏览器上下载文件 文件被下载并从我的 ActionResult 返回 我看到 Http 查询正常 并看到响应正文中的数据 问题是该文件不建议保存在浏览器中 一切看起来都不错 我在教程和论坛
  • 如何使用 Docker 在 HTTPS(SSL 连接)上部署 Next.js 应用程序?

    我按照 Next js 文档中的说明使用 Docker 启动服务器 https nextjs org docs deployment docker image 使用 http 加载站点可以工作 但 https 返回 SSL 协议错误 我详细
  • Delphi SAPI 文本转语音

    首先 这不是重复的德尔福和SAPI 我对 SAPI in Delphi 主题有一个具体问题 我使用了 Delphi 2009 中出色的导入类型库指南来在组件选项板中获取 TspVoice 组件 这很好用 和 var SpVoice TSpV
  • 如何将方法标记为强制方法?

    假设您使用构建器模式创建一个名为 Person 的类 并假设该 Builder 类包含方法body head arms 而且当然build 然后你考虑方法head and build 该类的用户必须这样做 我们希望以某种方式将这些方法标记为
  • Internet Explorer 在查询字符串中存在特殊字符问题

    这不是一个new问题 这里有很多关于 IE 在处理查询字符串中的特殊字符时遇到问题的问题 在所有情况下都是相同的 Chrome Firefox Safari 每个 都可以正确处理 UTF 8 编码的 URL 几乎所有这些甚至都可以处理 IR
  • (x:_) 和 [x:_] 是什么意思?

    head a gt a head error No head for empty lists head x x head a gt a head xs case xs of gt error No head for empty lists
  • 获取监视器的名称

    我在使用 winapi 检索监视器的名称时遇到了一些麻烦 根据 stackoverflow 上的其他条目 获取监视器名称的正确方法是 EnumDisplayDevices nullptr 0 oDisplayDevice 0 char lp
  • Haskell 类型让简单的“平均”函数令人沮丧

    我正在尝试初学者 Haskell 我想编写一个平均函数 这似乎是世界上最简单的事情 对吧 Wrong 看起来 Haskell 的类型系统禁止平均值处理通用数字类型 我可以让它处理积分列表或分数列表 但不能同时处理两者 I want aver
  • HTML5 Canvas + 下标和上标

    我想在画布中填充文本作为下标和上标选项 我该如何实现这一目标 请帮忙 由于您不允许在以下位置使用 HTMLdrawText你不能使用
  • 终端 ANSI 颜色不适用于 Inline::Perl5 (Data::Printer)

    以下 Perl 5 脚本 use strict use warnings use Data Printer my a 1 2 3 4 p a 给出输出 注意蓝色 而这个 Perl 6 脚本 use Data Printer from
  • 如果在 Crystal Reports 中重复则抑制字段的公式

    我有一个视图 显示水晶报告上的数据 其中有关税 租金 份额 毛额和净额等字段 我的问题是 如果有人更改数据库中的关税 它会显示 2 行具有不同关税的相同记录 这是正常的从数据库的角度来看 这是一种行为 但如果相同的 ID 具有不同的费率或租
  • Xamarin 中的“XamlCTask”任务意外失败

    我目前在构建 Xamarin Forms 解决方案时遇到问题 我收到一个错误The XamlCTask task failed unexpectedly 我尝试查看 Xamarin 日志和 Stacktrace 但我似乎找不到问题所在 有什
  • makefile 中的 patsubst

    我必须使用不同的 CFLAGS 从同一组 c 创建不同的 o 文件 我想使用 patsubst 从相同的 c 生成不同的 o 文件 我在下面的语句中做错了 请帮忙 我想从同一组 c 源文件生成一组具有 CC CFLAGS 02 c lt o
  • 平台默认字符编码如何影响跨平台性能

    我读过 例如在读取文本文件并将文本导入数组等时使用平台默认字符编码是个坏主意 您能否解释一下这将如何影响跨平台性能 以及如何解决该问题 是否有应该用于跨平台应用程序的编码 谢谢 这与性能无关 而是与显示和读取正确编码的文本有关 有多种方法可
  • setText 不将文本设置为 EditText

    我遇到了一个问题 这是我在近三年的 Android 开发过程中从未遇到过的问题 我想拍照 拍照后EditText活动的内容变得清晰 我正在做的是设置的值EditText to Strings using getText toString 拍
  • \c 中的 377 个字符

    我正在尝试读取 c 中的文件 我有一个 txt 文件 它的内容如下 文件一 txt 文件二 txt 文件三 txt 文件四 txt 当我尝试使用 fopen 读取此文件时 我得到以下输出 文件一 txt 文件二 txt 文件三 txt 文件