2014-09-28 440 views
-3
/* Beginning 2.0 */ 
#include<stdio.h> 
main() 
{ 
    printf(" %d signifies the %c of %f",9,'rise',17.0); 
    return 0; 
} 

你好的人警告:多字符字符常量[-Wmultichar] |

當我編譯,編譯器給予下列警告:

warning: multi-character character constant [-Wmultichar]| 

而只輸出打印e代替rise

C中不允許多個字符?

如何打印整個單詞(rise)?

請幫我一把。

+1

切線:說'int main()',而不是'main()',後者是過時的abd被認爲馬虎。 – 2014-09-28 15:59:20

回答

2

使用%s""一個字符串:

printf(" %d signifies the %s of %f",9,"rise",17.0); 
          ^^  ^^

對於'rise',這是有效的ISO 9899:1999 C。它在gcc下編譯時沒有警告,-Wall「multi-character character constant」警告與-pedantic

根據標準(§6.4.4.4.10),

  • The value of an integer character constant containing more than one character (e.g., 'ab'), [...] is implementation-defined.
5

嘗試:printf(" %d signifies the %s of %f",9,"rise",17.0);

℃的字符之間進行區分(這是一個字符)和字符(其可以包含的任意字符數)。您使用單引號('')表示字符文字,但使用雙引號表示字符字符串字面值。

同樣,你指定%c來轉換單個字符,但%s來轉換一個字符串。

相關問題