2010-06-15 32 views

Trả lời

21

Không, %% đầu ra%, vì vậy đúng cú pháp là:

printf("%%%s%%",string); 
+5

+1: Word for word những gì tôi đã có trong hộp câu trả lời. :) – sdolan

8

số

Sử dụng %%%s%%

+0

giải thích: %% thoát thành ký tự%. % s là mã kiểm soát. –

0

Bạn có thể in một chuỗi như thế này: printf ("% s", SomeString);

Nó sẽ hoạt động!

+0

Vấn đề là xuất% dấu ở bên trái và bên phải của chuỗi được định dạng. – bezmax

+0

Oh ok, nghĩ rằng anh ấy đã phạm sai lầm trong bài đăng! – Daniel

3

Giải pháp này giúp bạn không biết các ký tự printf đặc biệt như '%' hoặc '\' sẽ được in ra sao.

#include <stdio.h> 

int main(void) 
{ 
    const char str[]="MyString"; 
    printf("%c%s%c",'%',str,'%'); 
    return 0; 
} 
+1

Đó có phải là một chút overkilling? 'printf' có một charachter thoát thích hợp cho'% 'vậy tại sao không sử dụng nó? Nếu vấn đề là nhớ nó ... tốt, nó chỉ là một tìm kiếm của Google đi. – nico

+0

Đừng làm cho tôi sai, tôi sẽ không sử dụng điều này nếu tôi biết các chuỗi %% hoặc \\ nhưng nó vẫn còn tốt để biết theo ý kiến ​​của tôi. – INS

+3

Vâng, nó tốt để nhận ra bạn có thể làm điều này. Tôi nghĩ rằng nó sẽ giúp mọi người hiểu những gì printf đang làm. Nhưng đừng làm điều đó trong sản xuất. :) – BobbyShaftoe

5
printf("%%%s%%", string); 

nên sản lượng một% mỗi bên.

Các vấn đề liên quan