2012-12-17 51 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); 

它解釋了你的編譯器警告。

相關問題