伊莉討論區
標題:
關於自學C語言遇到的問題fgets
[打印本頁]
作者:
cht1902316
時間:
2020-8-10 02:59 AM
標題:
關於自學C語言遇到的問題fgets
本帖最後由 cht1902316 於 2020-8-10 02:59 AM 編輯
無法上傳程式碼 ,
我用圖片試試!!
請見諒!!
補充內容 (2020-8-10 03:06 AM):
抱歉 原來print f 連在一起是敏感字元!! 我查看我過去的帖子!! 有位大大有告訴過我這件事!! 謝謝!! 我的程式碼在下面那一樓呦~
作者:
cht1902316
時間:
2020-8-10 03:05 AM
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
double a,b,c;
char zx[]="",s[]="";//,s2[]="",s3[]="";
print f("請輸入姓名:\n"); fgets(zx,20,stdin);
print f("請輸入計概成績:\n"); fgets(s,10,stdin); a=atof(s);
print f("請輸入數學成績:\n"); fgets(s,10,stdin); b=atof(s);
print f("請輸入英文成績:\n"); fgets(s,10,stdin); c=atof(s);
print f("統計中.....\n");
print f("\t%s的成績如下:\n",zx);
print f("==================\n");
print f("\t計概:%3.f\n",a);
print f("\t數學:%3.f\n",b);
print f("\t英文:%3.f\n",c);
print f("-------------------\n");
print f("\t總分:%3.f\n",a+b+c);
print f("\t平均:%3.2f\n",(a+b+c)/3);
system("pause");
return 0;
}
複製代碼
我的問題是在
fgets(zx,20,stdin);
複製代碼
他無法顯示正確的中文!
作者:
johnwanz
時間:
2020-8-10 09:38 AM
char zx[]="",s[]="";//,s2[]="",s3[]="";
名稱陣列只有一個byte長度,
按照記憶體排列, 名稱會被後續資料所覆蓋.
請改用專案, 透過除錯環境, 觀察記憶體變化, 即可自己找出錯誤.
作者:
cht1902316
時間:
2020-8-11 03:01 AM
記憶體變化....... 好吧很深奧~~ 這個難題以後在解好了
作者:
tryit244178
時間:
2020-8-11 06:55 PM
3樓大已經解答了。把字串設定長度就可以解決問題
#include <stdio.h>
#include <stdlib.h>
#define CannotPrint printf
int main()
{
double a, b, c;
char zx[21], s[11];
CannotPrint("請輸入姓名:\n"); fgets(zx, 20 ,stdin);
CannotPrint("請輸入計概成績:\n"); fgets(s,10,stdin); a=atof(s);
CannotPrint("請輸入數學成績:\n"); fgets(s,10,stdin); b=atof(s);
CannotPrint("請輸入英文成績:\n"); fgets(s,10,stdin); c=atof(s);
CannotPrint("統計中.....\n");
CannotPrint("\t%s的成績如下:\n",zx);
CannotPrint("==================\n");
CannotPrint("\t計概:%3.f\n",a);
CannotPrint("\t數學:%3.f\n",b);
CannotPrint("\t英文:%3.f\n",c);
CannotPrint("-------------------\n");
CannotPrint("\t總分:%3.f\n",a+b+c);
CannotPrint("\t平均:%3.2f\n",(a+b+c)/3);
//system("pause")
return 0;
}
複製代碼
作者:
cht1902316
時間:
2020-8-11 09:24 PM
tryit244178 發表於 2020-8-11 06:55 PM
3樓大已經解答了。把字串設定長度就可以解決問題
謝謝!!
謝謝!! 大大
歡迎光臨 伊莉討論區 (https://attach1201.eyny.com/)
Powered by Discuz!