2012-12-17 54 views
0

所以这里是我的尝试,但我收到了一些我不知道如何解决的错误。 17.2警告:传递putc的参数2会使得整型指针没有转换。 C:\ mingw .......注意期望结构FILE *但'但参数是int类型。如何将文件中的字符放入char字符串中?

#include <stdio.h> 
    #include <stdlib.h> 

    int main (void) { 
FILE *fp; 
int c; 
char copywords; 

fp = fopen("gues20.txt", "r"); 
if (fp == NULL) 
exit(1); 

c = getc(fp); 
while(c != EOF) 
{ 
putc(c, copywords); 
c = getc(fp); 
} 
printf("%d", copywords); 
} 
+0

http://www.cplusplus.com/reference/cstdio/putc/ – 2012-12-17 15:07:57

+0

如果你真的想把字符放在一个字符串中,那么'fputc()'就没有问题了。标题是否错误? – unwind

回答

0

二参数putc是一个文件流。但你通过一个朴素的字符。使用:

while(c != EOF) 
{ 
putc(c, stdout); 
c = getc(fp); 
} 

在标准输出中打印。

+0

这显然是一项任务,为什么不把他指向相关文档,而不是为他编写代码呢? ... – 2012-12-17 15:10:54

+0

@MarcoLeblanc在这样的小事件中,没有什么可以隐藏的。我已经指出了这个问题并给出了手册的链接。如果OP不想学习,这是他/她的选择。 –

+0

谢谢KingsIndian。在笔记中没有提及标准输出,所以没有办法让我知道它存在并可以解决我的问题! – the5thace

0

此:

putc(c, copywords); 

是错误的。首先,copywords永远不会被初始化或用于该行之上,所以引用它显然是错误的。其次,putc()的原型是:

int putc(int c, FILE *stream); 

它解释了你的编译器警告。

相关问题