c - 使用 fopen、fgetc、fput 和 fclose 函数将字符串从 input.txt 复制到 output.txt
问题描述
我试图通过从 input.txt 读取字符串并将其复制到 output.txt 来简单地复制它。我面临的问题是输出文件不包含输入文件的任何字母。它只包含字母。
我究竟做错了什么?
#include <stdio.h>
void main(void) {
char input[45] = "S:/Master/M_32561/9000_A/B11-01/input.txt",
output[45] = "S:/Master/M_32561/9000_A/B11-01/output.txt";
FILE *dtzgr_0, /* Input-Pointer */
*dtzgr_1; /* Output-Pointer */
dtzgr_0 = fopen(input, "r");
if(dtzgr_0 != NULL) {
dtzgr_1 = fopen(output, "w");
int c;
while(c = fgetc(dtzgr_0) != EOF)
fputc(c, dtzgr_1);
fclose(dtzgr_1);
}
else
printf("Can't read %s.", input);
fclose(dtzgr_0);
}
解决方案
在运算符优先级表中,!=
是超前的=
。
所以下面一行:
while(c = fgetc(dtzgr_0) != EOF)
相当于:
while(c = (fgetc(dtzgr_0) != EOF))
如果返回的不是,那么c
将被赋值为 0 。fgetc
EOF
您必须将上面的行更改为:
while((c = fgetc(dtzgr_0)) != EOF)
然后,您将返回值从fgetc
to分配,c
然后将其与EOF
.
推荐阅读
- c# - 从 json 获取项目并将其作为 Blazor wasm 中的参数传递
- html - 如何修复此验证器错误?- 元素 a 不能作为按钮元素的后代出现
- python - discord.py 中的多个可选参数
- npm - 发布 npm 包时的各种问题
- c++ - 在没有适当的 operator() 的情况下调用类类型的对象。在 .cpp 文件中
- javascript - 如何使用 .some() 查找对象数组是否包含特定属性值
- angular - 在本机设备地图应用程序上打开地图网址
- google-tag-manager - 如何向 google tagmanager 服务器端发送 http 请求
- javascript - 如何使用 API 中的 HTML 标签并在页面上显示?
- python - 如果我将 Selenium 与 Python 一起用于我的脚本,我如何使用 BDD 在 testrail 中编写测试用例?