一、問題**
今天在vs2010平台上,嘗試採用scanf()
string word;
scanf("%s",&word);
然後發現錯誤,輸出採用
printf("%s\t",word);
發現也不行,然後轉換成cin和cout就ok,於是懷疑是不是%s出了問題,果然是這樣。
因為在c中的字串是儲存在char陣列中,是乙個基本型別的組合,但是string則是c++中的封裝好的類。
所以輸出可以採用
printf("%s\t",word.c_str());
但是感覺輸入是沒得救啊!
一直以來對這個問題都不是很清楚:只是知道c語言裡有型別,可以通過下面這種形式來宣告string的變數 string astring;
後來程式設計時發現通不過編譯,又查資料才知道原來c語言裡壓根就沒有string這個型別,所以字串都是通過char陣列來儲存的,
而不是型別)。這是網上我找到的比較滿意的答覆:
" c語言中有string型別變數嗎"
這裡的 string 有 二 義性。
(1) 如果 string 是普通詞彙,「c語言中有字元型別變數嗎」, 答,有。 字元型別 用 char 宣告。
char str="this is a string";
(2) 如果 string 是專用詞彙,「c語言中有string型別變數嗎」,答,沒有。string 是 類,是 class, 不是型別,不是 type.
C語言中有bool型別嗎?
之前一直都沒有注意到,最近在用c語言寫dsp演算法時,偶然間發現我函式中定義的bool型別的變數在vc6.0 我主要用它來檢查一下語法錯誤 中編譯居然報錯了,說是bool型別沒有定義。用了這麼久的c和c 了,一直覺得bool這種基本型別,應該是c語言內建的型別,怎麼會沒有定義呢?事實證明,我的想法完...
C語言中有bool型別嗎?
之前一直都沒有注意到,最近在用c語言寫dsp演算法時,偶然間發現我函式中定義的bool型別的變數在vc6.0 我主要用它來檢查一下語法錯誤 中編譯居然報錯了,說是bool型別沒有定義。用了這麼久的c和c 了,一直覺得bool這種基本型別,應該是c語言內建的型別,怎麼會沒有定義呢?事實證明,我的想法完...
c語言中有自己的bool型別
有人說c語言中沒有bool型別,只有c 中有,果真如此?先看沒有bool型別時,c中表示bool型別的方法 1 typedef int bool define false 0 define true 12 typedef int bool enum 3 typedef enum bool 簡單例項如...