目前正在完成我本周的 C 作業,我第一次正確地處理指標。
我們被告知要創建一個 main 函式來處理為我們預制的 readLine 函式(我們編輯了一些東西,比如 while 回圈中的 if 陳述句)。
嘗試編譯時,我收到錯誤“/usr/include/stdio.h:356:43: note: expected 'const char * restrict' but argument is of type 'int' 356 | extern int printf (const char *__restrict __格式, ...);
我該怎么做才能解決這個問題?我認為這與我呼叫 readLine 的方式有關。謝謝!
#include <stdio.h>
int readLine(char *s, int MAX){
char c;
int i = 0;
while ((c = getchar()) != '\n' && i<MAX){
if (*s >= MAX){
printf("input too long!");
return -1;
}
c = *(s i);
}
s[i] = '\0';
return i;
}
int main(){
int MAX = 20;
char s[MAX];
printf(readLine(s, MAX));
}
uj5u.com熱心網友回復:
該函式回傳一個整數,但您將輸出一個字串。所以寫
readLine(s, MAX);
puts( s );
還有這個 if 陳述句
if (*s >= MAX){
沒有意義。
而不是
c = *(s i);
你必須寫
*(s i) = c;
在 while 回圈中,您需要增加變數i。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/518356.html
下一篇:fgets給我null
