- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
标准 C 库:
int fputc(int c , FILE *stream);
而且这样的行为发生过很多次,例如:
int putc(int c, FILE *stream);
int putchar(int c);
为什么不按实际情况使用 CHAR?如果必须使用 INT,什么时候应该使用 INT 而不是 CHAR?
最佳答案
最可能(在我看来,因为早期 C 背后的许多基本原理已经随着时间的流逝而消失),它只是简单地反射(reflect)了 fgetc< 中使用的类型
类型的函数必须能够返回任何真实字符加上 EOF
特殊字符。 fgetc
函数将下一个字符转换为 int
,并使用一个特殊的标记值 EOF
来指示流的结尾。
为此,他们需要更宽的 int
类型,因为 char
不够大,无法容纳所有可能的字符再加上一件事。
而且,由于 C 的开发人员似乎更喜欢一种相当极简主义的代码方法,因此他们使用相同的类型是有道理的,以允许这样的代码:
filecopy(ifp, ofp)
FILE *ifp;
FILE *ofp;
{
int c;
while ((c = fgetc (ifp)) != EOF)
fputc (c, ofp);
}
关于function - 为什么 'fputc' 使用 INT 作为参数而不是 CHAR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31907589/
大多数 fputc 的 C 文件编写示例使用非常基本的示例,很少或没有过程错误检查。 我应该将哪些错误检查技术和函数与 fputc 循环结合使用以确保 fputc 已成功写入文件?我应该如何使用它们?
我在编写的程序中看到了一些我无法真正解释的奇怪行为,我想知道是否有人可以向我解释这里发生的事情。我感觉这是由 g++ 与 -O3 一起使用的一些高级优化技术引起的,但我不确定。 我正在运行类似的东西(
我正在使用 fputc(在 C/C++ 中)将一些数据输出到文件中,文件大小对我的项目很重要。但是结果文件的大小似乎不正确,一个简单的代码示例: FILE *fp = fopen( "123.txt"
由于某种原因,当我尝试使用 fputc 通过管道写入时,我的程序无法工作;但是,当我使用 write 系统调用时它工作正常。这是我使用 fputc 的代码部分: FILE *input = f
我对 C 很陌生,我正在尝试使用 fputc() 在文件中存储整数。当我查看整数格式不同的文件时,该函数起作用。 例如: 1) fputc(ppm1->max, file1); ppm1->max 指
我 3 天前才开始学习 C,我正在尝试编写一个程序,它接收一个文件、读取字符并从中删除所有空格和制表符。我是一名初级程序员,在开始学习 C 之前只学习了一点 MATLAB。我使用的是 Ubuntu 1
#include int main() { FILE *fp; char ch = 'g'; fp = fopen("temp.txt", "r+"); while
我应该编写一个程序来获取文本文件(包含纯文本)并更正以下错误(涉及标点符号): Hello , there! --> Hello, there! Hello ,there! --> Hello, th
给定 unsigned char *str,一个 UTF-8 编码的字符串,用 fputc((char)(*str), file 写入第一个字节(不是字符)是否合法); 最佳答案 移除对 char 的
我有一个用 C 语言编写的小程序,它以一个菜单开始,该菜单在一个带有 do{switch{case 1....}while 循环的函数中实现 当案例 1 验证时,它调用另一个函数,其中 while 循
我有以下 C 函数: int vacateDir(const INODE *pParDirInode) { FILE *fp = fopen("fs560", "rb+"); if (fp =
当使用 fopen("/some/path", "r") 创建流时,我无法找到对 fputc() 指定行为的任何引用>. 我搜索了 C11 Draft n1570 pdf 寻找任何没有运气的引用,fo
我想更改文件的一个值,但以下代码根本不起作用。当我删除 if 语句时它可以正常工作。 代码如下: #include int main() { int b; FILE *fp;
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 9 年前。 Improve th
我正在使用 C 语言编写基本的 fputc 应用程序。我正在编写/附加“.”在文件中使用 for 循环次数。但是,该文件显示的是垃圾字母而不是“。” . #include int main()
我正在尝试使用 fseek 转到文件中的特定位置并打印文本。但是当我使用 fputc 或 fwrite 时,它们会继续输入十六进制值而不是字符值。该文件是 .dat,最初用 0 填充。因此,除此之
getc() 与 fgetc() putc() 与 fputc() 它们之间的主要区别是什么? 我听说除了 getc() 可以用作宏之外,这两个函数的作用几乎相同。这是什么意思? 如果它们相同,为什么
我在使用 fputc 时遇到问题 - 也许有人可以提供帮助。我在开始时分配了一些存储空间,并分配给了 data[0] = 'B' 和 data[1] = 'M' - 数组的其余部分填充了数字。然后数据
int fputc(int c, FILE *stream); int fputs(const char *s, FILE *stream); 为什么在 fputc() 的声明中不需要 const i
我正在用 C 创建一个存档程序,我希望它保存我提供的文件,列出并提取它们。 我有很多问题,因为我使用文本文件进行保存,如果我想处理音乐或照片等二进制文件,这不是最佳选择,因为当我提取它们时,它们没有正
我是一名优秀的程序员,十分优秀!