gpt4 book ai didi

c - 为什么 "fputc "在这里不起作用?它正在抛出垃圾字母

转载 作者:行者123 更新时间:2023-11-30 20:00:54 27 4
gpt4 key购买 nike

我正在使用 C 语言编写基本的 fputc 应用程序。我正在编写/附加“.”在文件中使用 for 循环次数。但是,该文件显示的是垃圾字母而不是“。” .

#include <stdio.h>
int main()
{

int i = 0 ;
FILE *txtfile ;
txtfile = fopen ( "fullstop.txt" , "a" ) ;
for ( ; i < 100 ; i++ )
{
fputc ( "." , txtfile ) ;
}
fclose ( txtfile ) ;
return 0 ;

}

我在代码中没有看到任何语法错误,但也许我错了。 GCC 在编译时显示以下警告和错误。这可能会有所帮助。

warning: passing argument 1 of ‘fputc’ makes integer from pointer without a cast [-Wint-conversion]
fputc ( ".", txtfile ) ;
^
/usr/include/stdio.h:573:12: note: expected ‘int’ but argument is of type ‘char *’
extern int fputc (int __c, FILE *__stream);

如果我用 fprintf 代替,它就会起作用。

fprintf(txtfile,".");

我也尝试了fflush,但也没有成功。

那么,我的问题是为什么fputc不工作?

最佳答案

fputc() 的第一个参数必须是单个字符,而不是字符串。

fputc('.', txtfile);

当您传递字符串时,它会转换为指针,然后 fputc() 将该指针视为字符值,这会导致垃圾。

关于c - 为什么 "fputc "在这里不起作用?它正在抛出垃圾字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38455219/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com