1樓:匿名使用者
void main(void)
改法,把陣列定義成b[4].並初始化如:char b[4] = ;
為了規範
在給b賦值時;
for(i=0;i<=3;i++)
2樓:匿名使用者
這個主要是對字元
串的結尾標誌沒理解,字串要再最後加乙個0 表示字串結束。
a 儲存了『asdf0』(我輸入的是asdf在回車,0是系統自動加入)
for(i=0;i<=2;i++)
b[i]=a[i];
b儲存asd(注意這裡沒有0)
strcpy(c,a+3);
c拷貝a[3]=f在拷貝遇到0時,函式就認為拷貝結束這個時候
c儲存f0
strcat(c,b);
在連線b 這個函式中就要看b 陣列中0位置,由於b陣列沒有0 所以就存在亂碼
所以,你不要亂碼
b[80]
for(i=0;i<=strlen(a);i++)b[i]=a[i];
3樓:吳鐵騎
我說錯了 是b沒有結束字元\0
4樓:宇文君
函式strcat(c,b);在連線b 這個函式中就要看b 陣列中0位置,b陣列由於沒有0 ,所以就存在了亂碼
c語言輸出檔案末尾出現多餘的亂碼
5樓:匿名使用者
既然你要以字串的形式輸出 char 陣列,那麼在定義 a 的時候就應該給\0多留乙個空。如果你不想留,那麼在輸出的時候,應該以字元的形式 %c 乙個乙個地輸出。
給字串加\0不是在 fprintf(fout,"%s\0",a); 這個地方加的。要在字串本身,也就是 char a 的最後乙個元素裡賦值為 \0 。
6樓:匿名使用者
輸出字串自動會有\0結束,不需要顯示輸出\0的吧。
另外a總共12個字元,都填值了,沒有地方放\0了,宣告為 char a[15]= 吧
7樓:匿名使用者
百分s是全部資料 用for語句遍歷列印吧 或者試試puts函式 或者用fomat函式規定輸出距離
c語言輸出最後 會多乙個亂碼
8樓:風~月
因為你沒有初始化,char a[100]= ;char b[100] = ;這樣子初始化以後就可以了,使用定義了字元陣列後都必須要初始化,因為字元陣列的長度是根據最後一位是不是''\0''決定的,如果沒有初始化就會出現你這種亂碼的問題了
c語言執行的結果後面為什麼出現亂碼
9樓:劉文正粉絲
每個正常的字串的結尾都有乙個\0, 而你在迴圈最後只判斷是不是回車, 是回車只是結束輸入, 並沒有把回車變成\0, 或在回車後面加上乙個\0, 這樣你的while就無法判斷*fp是不是字串結尾.
10樓:_無憂望月
因為最後的結束沒有'\0',只有『\n』, 你可以修改while(*fp != '\n'),或者自己在後面新增乙個結束標誌
11樓:匿名使用者
在fp = str;前加一句
str[i] = '\0';
c語言問題,輸出結果是亂碼
12樓:碧海風雲
你在定義x結構體的同時,已經定義了乙個x型的全域性變數student1並賦了初值,然而內,你的main函式裡又定義容了同名的區域性變數student1並沒有賦初值。main函式執行時,這裡的student1是未賦初值的,所以student1.name的值並不是"星哥",你以%s輸出它,自然會顯示為「亂碼」。
改正方法是,既然你已經定義了全域性變數,main函式裡就不要再定義了。
#include
#include
struct x student1 = ;
int main()
執行結果
13樓:匿名使用者
去掉你main函式裡的struct x student1;就可以了#include
#include
struct x
student1=;
int main()
c語言 字串輸出時最後出現乙個亂碼 **等
14樓:匿名使用者
for (i = 0; i <= len; i++)
兩個這個地方都要寫成 < 不能等於
15樓:鑄信
修改這裡:len = strlen(cs)-1;
c語言為什麼輸出的有亂碼?
16樓:神舟塔下曬紅薯
每次都一樣嗎?
sum好像沒賦初值吧?得到的結果不確定,平均值當然計算不對在這個地方
max=s[0];
maxn=0;
min=s[0];
minn=0;
加一條:
sum=0;
ok 了
c語言程式輸出檔案到螢幕上最後結尾出現乙個亂碼
17樓:匿名使用者
導致出現亂碼的可能很多,你的檔案是ascii還是二進位制?
如果是ascii,你用什麼輸出,是讀乙個字元就輸出還是讀一段字串後輸出,如果讀一段就輸出有可能出現亂碼?
如果是二進位制,你是否按二進位制的讀法開啟的?
另外,!(feof)足夠判斷檔案是否完,請吧具體**或**主要部分貼出來,大家看看
18樓:匿名使用者
while(!feof(in))
fputc(fgetc(in),stdout);
這個迴圈的結束條件是 fgetc(in) 返回了結束符,就是結尾多出來的那個字元
所以加上 結束符 eof 的判斷 就可以了#include
#include"string.h"
#include"stdlib.h"
void main()
while(!feof(in))
fclose(in);}
19樓:匿名使用者
可以啊。
出現你這種可能是你用的是tc,顯示不了漢字。
或者你定義的型別跟檔案中內容不匹配。
c語言的這個c程式 為什麼輸出的是亂碼?
20樓:匿名使用者
你好沒有亂碼
就是邏輯上有些錯誤如圖:
21樓:愛好
沒有具體看到你的輸出結果啊。
C語言初級有以下程式段輸出結果是
for i 1 i 15 j 4 一定是給錯了,應該是for i 1 i 15 i 4 取4個值1,5,9,13 for j 3 j 19 j 4 m 會執行5次m 也就是m 5,j分別取3,7,11,15,19 兩個迴圈是巢狀關係,合計執行為4 5 20。外層迴圈應該是 for i 1 i 15 ...
C語言這段程式求翻譯下
不加的區別就是 現在列印的是a xx,b xx,c xx 你不加列印的就是xx,xx,xx 就是這點區別 不會影響程式執行的 那幾個字元會原樣輸出。有 f的會用後邊的變數a,b,c代替。f代表的a.b,c輸出的格式 哪個大神能給我解釋一下 這個c語言程式怎麼翻譯 程式的功能是輸出從100 200之間...
c語言輸出字串,一開始是亂碼,C語言,字串輸出是亂碼
for i 0 i 26 i for j 0 j 26 i 1 j 這裡改一下先 c語言,字串輸出是亂碼 字串使用前請使用清空語句把垃圾記憶體清理成 0 也就是0x00 0 memset str2,0x00,sizeof str2 當然,也可以在宣告的時候進行初始化 char str2 20 這句也...