- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我不明白为什么 fputs 和 fprintf 反转流顺序。
int fputs (const char * str, FILE * stream);
int fprintf (FILE * stream, const char * format, ...);
ssize_t write(int fd, const void *buf, size_t count);
我知道 fprintf 把流放在前面支持可变参数,但为什么 fputs 系列不保持一致性???
最佳答案
因为这些东西是几十年前写的,所以一般来说这只是历史学家感兴趣的问题:-)
这可能只是一个设计决定(或缺乏决定)导致他们变成这样,并且由于 ISO 重视向后兼容性,他们从未改变它。
可能是先编写了puts
,然后在编写fputs
时,开发人员只是简单地剪切'n'粘贴它,将新参数附加到最后。即使 printf/fprintf
存在相同的情况,由于需要将可变参数列表放在末尾,这也是不可能的。
但是,撇开假设不谈,既然我们心爱的丹尼斯走了,我们可能永远不会知道真正的原因..
关于c - 为什么 fputs 和 fprintf 反转流顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27956340/
以下编程在“fputs”的第一个实例处崩溃,尝试将“fname”打印到文件 Member_inf。我还尝试打印常量字符串“abcdefg”,但仍然失败。到底做错了什么?看来是文件的初始化。如果可能的话
我的输入文件包含以下格式的产品集合: name price symbol 示例文件是: Ball 6.24 u 我想读取文件,将文本解析为struct,并使用相同的元素重写文件,但不包含带有符号u的元
总的来说,我对 C 语言和内存分配还很陌生。基本上我想做的是复制未知大小的输入文件的内容并使用递归反转其内容。我觉得我已经非常接近了,但是当我尝试放入我认为是文件反转内容的内容时,我不断遇到段错误(我
fseek(ofile, 13, SEEK_SET); fputs("\t", ofile); do { ch = getc(ofile); printf("%c", ch);
当运行下面的代码时,我没有得到任何输出,但我不知道为什么。 # include int main() { fputs("hello", stdout); while (1);
我试图在文件中写入数组的全部内容。这是我的代码: fichier = fopen(patch, "w+"); if (fichier != NULL) { if(methode=
#include int main() { FILE *fp; char str[60]; char data[50]; char * pch; /* opening
我在完成下面的作业时遇到了问题。每当我尝试将 fputs 参数合并到一行中时,错误都会显示 fputs 中的参数过多。 我想做的是在每个子文件中创建一个输出,其中包括时间以及一行中的文本,但下面的代码
我有以下代码: #include #include #include using namespace std; int main(){ size_t size; char *li
int main(int argc, char *argv[]) { FILE *datafile, *outputfile; char c, *line, *line1, *line
在这个程序中,我的 edit() 函数无法正常工作。当我尝试写一些东西时,它只会删除整个内容,而在 appendText() 中只有一个单词被附加?有没有办法将整个字符串写入文件? #include
我目前正在尝试用 C 语言创建一个数据库,使用 .txt 文档作为存储所有数据的地方。但是我无法让 fputs() 换行,所以我的程序在此 .txt 文档中写入的所有内容都只在一行上。 int
我有以下简单代码: #include int main(){ char buffer[20] = "abc"; FILE *pFile; pFile
我终于让自己去看了一些 Linux 代码。我现在正在查看 ls.c。 在底部的函数 usage() 中,我发现了很多这样的语句: fputs (_("\ List information about
不可能执行类似 fputs(4, fptOut); 的操作,因为 fputs 不喜欢整数。我该如何解决这个问题? 执行 fputs("4", fptOut); 不是一个选项,因为我正在使用计数器值。
或等效地, 为什么 puts() 会追加一个尾随换行符? 当输出字符串时,可能会用到两个类似的函数:fputs() 和puts()。 puts() 在输出时自动在末尾添加一个新行,但 fputs()
我在 Windows 上遇到文件写入失败的问题。我将它简化为这个例子: FILE* f = fopen("test.out", "r+b"); fseek(f, -1, SEEK_END); // o
为什么 fputs() 或 fprintf() 没有写入 %s 的 file.txt ?我尝试了这两个函数,但它们似乎没有写入文件。但是,当对 %d 使用相同的函数时,它目前确实有效。至于预期输出与当
为什么 fputs() 或 fprintf() 没有写入 %s 的 file.txt ?我尝试了这两个函数,但它们似乎没有写入文件。但是,当对 %d 使用相同的函数时,它目前确实有效。至于预期输出与当
假设test.txt是这样的: aaaaa aaaaa aaaaa 测试代码是这样的: #include #include #include int main() { FILE *f = f
我是一名优秀的程序员,十分优秀!