![](/img/trans.png)
[英]Declaring/using char pointer inside a struct in c and taking input in it
[英]Making myfgets using char pointer as an input
char *myfgets(char *s, int n, FILE *in) {
char ch;
if (n<=0) {
return s;
}
while (((ch = getc(in)) != '\n')) {
if(ch == EOF){
return NULL;
}
else if (ch == '\n') {
break;
} else {
*s=ch;
s++;
}
}
*s = '\n';
if (ferror(in) != 0) {
return NULL;
} else {
return s;
}
if (strlen(s) > 512) {
return NULL;
}
}
我只想從某個特定文件中取出 1 行並將該行放入字符指針 ( *s
) 中。 我做了這個 function 但是當我運行這個程序時它並沒有很好地工作。 結果,顯示了很多未知字符。
我的代碼有什么問題嗎?
從strlen()
的手冊頁:
strlen()
function 計算s
指向的字符串的長度,不包括終止字節 null ('\0'
)。
因此, strlen
計算字符數,直到找到 null 字節'\0'
,而不是換行符'\n'
。 考慮改變
*s = '\n'
到
*s = '\0'
或者,您可以編寫自己的strlen
來查找'\n'
而不是'\0'
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.