c語言為什麼會出現亂碼,為什麼C語言輸出檔案內容亂碼

時間 2021-09-11 22:33:38

1樓:匿名使用者

應該是二次封裝弄的,防止盜用

2樓:

這個行業一句「一個級別知道一個級別的事」躲藏了很多不為人知的祕密:

你們都知道,我們來到地吃苦的目的就是為了能有今天,就是來掙錢的,所以我就要告訴你們,我們上面

的錢是怎麼分的,怎麼拿的,這也是你們非常關心的一個問題.

為什麼會有這麼多的人想加入這個行業 ?

1.每個平凡的人都有一種想走捷徑發財的思想。

2.每個平凡的人都有一種對金錢巨大的貪丨婪慾望

3.社會的現實,殘酷,金錢的**,社會的**導致人心的扭曲。

4.這個行業就是利用一種比傳統行業人情味濃,大家每天都開開心心,人無私的去幫助別人,還有一種是在傳統行業從來就沒有感受到的氛圍把新人的心裡籠絡住了。

人生是條河,深淺都要過。

你發展到一定階段的時候,你眼巴巴的看到下面的親戚還有之心朋友,一個個都不能發展,但是還有支付外地每天的生活開銷,甚至連一個新朋友來考察的路費都付不起的時候,那時候,你的內心是什麼滋味?你如何面對他們!

資深分析師期待著你交丨流 ?:4==7==0==6==7==6==1==0==1==君富=、、交流、、

為什麼c語言輸出檔案內容亂碼

3樓:匿名使用者

這種文字文來件,不能自直接使用

讀到結構的方法。因為結構裡會有非文字的控制符,比如字串結束符'\0'。

一般使用直接讀到結構的方法,只限於二進位制格式的檔案,並且最好是讀自己建立的檔案,別人建立的,格式剛剛好合適建立結構的也很少。

你這個亂碼,你的檔案裡,學號長度為10個位元組,所以你定義學號這個變數時,必須定義11個位元組的長度,因為字串的變數,必須要有一個'\0'作為結束,不然的話,顯示的時候,沒有結束符就會接著往下顯示,就會有亂碼出現。

如果僅僅是這三行的話,倒也能使用結構來讀,比如結構裡定義num[11],讀完後執行一下num[10] = '\0';給它補一個結束符。但如果有人叫「王老四」,名字有的是2個字,有的是3個字這樣,你這個就不好判斷了。

這種文字,最好是使用fscanf("%s %s %s %s %s", num, name, ***, date, major)的形式來讀取。每次讀取一行。(注意字串定義變數時,長度一定要多加1位)。

4樓:月湖清夢

你把格式存為文字檔案製表符分格試一下呢

c語言寫入檔案為什麼會出現亂碼的現象 10

5樓:金色潛鳥

寫入資料用 fprintf(fp,"%s %s %d 。。。這種方式。不是 fscanf(), 另,注意寫出時的格式裡要有分隔符空格,否內則下次讀檔案時容,字串,數字混在一起無法讀。

允許同時「讀寫」的檔案,要注意讀寫位置的控制,必要時用到 迴繞檔案,或fseek。

6樓:太平洋電腦網

解壓檔案出現中文亂碼怎麼辦解決辦法

7樓:皖

應該是哪一句邏輯有問題

c語言執行程式顯示為什麼有亂碼?

8樓:億華聯眾

你寫**時的編碼不正確,如果有中文有有可能出現亂碼

9樓:匿名使用者

編碼問題,有的編碼不支援中文,在編寫時更改下原始檔的編碼即可,一般都是utf-8編碼。

10樓:小痞子

你在最後的那個函式裡 在沒有輸入之前呼叫了輸出函式printf();

而a和b在為輸入之前 ,裡面的值是不確定的,也就是隨機的

11樓:夜黑黎

可能有漢字

陣列可能超過下標

變數可能沒賦值

12樓:闖蕩翰海

編碼問題:utf-8 和gbk問題

程式出現的錯誤:讀取了未初始化的空間等等。

出現了溢位。

13樓:

應該是你的c++studio那個軟體沒有安裝好吧,換個版本試試。

14樓:

作業系統?什麼編譯器?

規矩是編碼的問題,ansi,utf-8?

c語言檔案輸出時,輸入資料後為什麼會出現亂碼

15樓:吃飽了就撐著

可能是輸入緩衝區之前未清空

使用這個函式將檔案緩衝區清空

memset(buffer,0,sizeof(buffer));

標頭檔案在#include中

16樓:幻夢·人生

你這種寫入方式是直接將這個資料的記憶體原封不動的拷貝到檔案當中。

在c語言中,記憶體中的結構體的儲存並不是所有資料連續的。

你可以在網路上搜尋一下結構體的對齊原則。

這種原則是c語言中,結構體儲存結構的原理。

如果你希望能更好的理解。

17樓:匿名使用者

if(!=1) 簡單看了下,這行有問題,往檔案裡寫的時候是把一個字串寫進去,stud[i]是一個struct,強行把它序列化的話,記憶體中的儲存不是連續的,這樣寫就會寫入一些沒用的資料,導致出錯。考慮一下怎麼把struct序列化,再看看struct的中的位元組是怎麼對齊的,建議而已

18樓:_qq加

fwrite函式儲存資料時整型資料將會儲存為對應的ascii字元

比如48就會被儲存為『0』

c語言fwrite寫入檔案後為什麼出現亂碼?

19樓:墨汁諾

這個函式以bai二進位制形式對du

檔案進行操作。zhi

按資料定義結構dao的版寫入保持資料結構的長度,對於數值型別,權再用文字方式開啟時表現為亂碼。例如float a=12345.67,寫入檔案後為4個位元組,開啟後不是文字表示的8個位元組。

寫入資料用fprintf(fp,"%s %s %d 這種方式。不是 fscanf(), 另,注意寫出時的格式裡要有分隔符空格,否則下次讀檔案時shu,字串,數字混在一起無法讀。允許同時「讀寫」的檔案,要注意讀寫位置的控制,必要時用到 迴繞檔案,或fseek。

20樓:匿名使用者

fwrite fread是成塊的對二進

制檔案進行讀寫,如以二進方式處理檔案,檔案裡的內容除了字內

符型以asc碼顯示的容你能用記事本開啟時能看明白,其它數值型別都是按其在記憶體裡的二進位制格式儲存的,你現在又以asc碼的形式強制解釋,當然全時亂碼。fwrite寫,就用fread讀,程式不會出問題,效率還高。

21樓:匿名使用者

這個函式bai

以二進位制形式對檔案進行du操作zhi

按資料定義結

構的寫dao入保持資料結構的長度,對內於數容值型別,再用文字方式開啟時表現為

亂碼。例如float a=12345.67,寫入檔案後為4個位元組,開啟後不是文字表示的8個位元組。

22樓:

size_t fwrite(const void* buffer, size_t size, size_t count, file* stream);

注意:這個函式以二進位制形式對檔案進行操作,不侷限於文字檔案返回回值:返回實際答寫入的資料塊數目

(1)buffer:是一個指標,對fwrite來說,是要獲取資料的地址;

(2)size:要寫入內容的單位元組數;

(3)count:要進行寫入size位元組的資料項的個數;

(4)stream:目標檔案指標;

(5)返回實際寫入的資料項個數count。

它寫入的時候是二進位制。所以你是看不了的。

23樓:匿名使用者

因為寫入檔案的是二進位制資料,所以看上去就是亂碼。

c語言,為什麼這個輸出會亂碼? 10

24樓:飄零的狐狸

你定義了字元指標陣列,但是沒有申請空間

c = (char *)malloc(20);//分配得來得20位元組的區域就在堆區。

25樓:匿名使用者

型別不對呀 c是char *型別 %s需要char*型別

26樓:申綠定湃

每次都一樣嗎?

sum好像沒賦初值吧?得到的結果不確定,平均值當然計算不對在這個地方

max=s[0];

maxn=0;

min=s[0];

minn=0;

加一條:

sum=0;ok了

c語言執行的結果後面為什麼出現亂碼

27樓:劉文正粉絲

每個正常的字串的結尾都有一個\0, 而你在迴圈最後只判斷是不是回車, 是回車只是結束輸入, 並沒有把回車變成\0, 或在回車後面加上一個\0, 這樣你的while就無法判斷*fp是不是字串結尾.

28樓:_無憂望月

因為最後的結束沒有'\0',只有『\n』, 你可以修改while(*fp != '\n'),或者自己在後面新增一個結束標誌

29樓:匿名使用者

在fp = str;前加一句

str[i] = '\0';

c語言程式設計為什麼會出現undefinedsymbol錯誤

兔老大米奇 當出現沒有定義的變數,或無法處理的符號時,就會出undefined symbol 錯誤,意思是沒有定義的符號。libz.so.1 usr lib64 libz.so.1 0x00002b1ecf5f3000 這種情況意味著能找到該動態庫 libz.so.1 not found 這種就是找...

為什麼有時會出現亂碼,為什麼有時文件會出現亂碼?

原因 可能是低版本開啟高版本。或者是格式不相同。文件損壞了。解決辦法 方法一 利用word2002 2003的 開啟並修復 功能來修復文擋。1 啟動word2002 2003,單擊 檔案 開啟 在 開啟 對話方塊中選重要修復的word文擋。2 單擊 開啟 按鈕右邊的下三角按鈕,在彈出的下拉選單中選中...

c語言中為什麼出現現燙

程式有問題。一般是字串沒有以 0 結尾。建議貼出 vc編譯器對於沒有初始化的區域性變數插入 使之初值為0xcccc,即中文燙字。 天雲一號 出現 燙 的原因是由於字元陣列中的某些陣列元素沒賦值。具體原因可以通過如下例項來進行說明 char a 10 a 0 a a 1 b a 2 c a 3 d p...