我正在嘗試創建一個延遲列印功能(每秒列印一個字串的字符)。
我的代碼是:
#include <stdio.h>
#include <string.h>
#include <windows.h>
void delayPrint(char* s);
int main(int argc, char * argv[])
{
delayPrint("ciao");
return 0;
}
void delayPrint(char* s)
{
for (int i=0; i<strlen(s); i )
{
Sleep(1);
printf("%s", s[i]);
}
}
我無法列印字串的特定字符:我可以在 displayPrint 函式中列印整個字串。現在這個函式什么都不做。
我不明白這個問題(Windows 11,mingw)有人可以幫忙嗎?
uj5u.com熱心網友回復:
你不應該使用 %c 來列印字符嗎?
printf("%c", s[i]);
代替:
printf("%s", s[i]);
uj5u.com熱心網友回復:
請注意,您的代碼具有Sleep(1). 這個函式需要幾毫秒。所以它可能比你想要的要快。一秒鐘,您應該將其更改為Sleep(1000).
https://learn.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-sleep
uj5u.com熱心網友回復:
您正在提供%s作為引數,printf但您正在給它一個字符s[i]。printf期望%s是一個指向以 null 結尾的字串的指標(這意味著字串末尾應該有一個\0字符來檢測它是否結束)。
for (int i=0; i<strlen(s); i )
{
Sleep(1);
printf("%s", s[i]);
}
您應該更改%s為%c.
uj5u.com熱心網友回復:
看來您在占位符中犯了錯誤。您應該將 %s 更改為 %c 以列印字符。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/518346.html
標籤:C
上一篇:運行Git-2.38.0-64-bit.exe給出“此程式需要Windows服務包1或更高版本”
下一篇:在c中展平一個鏈表
