我在 C 編程中遇到了這個問題。我是 C 新手,所以我需要一些幫助。
有人知道為什么會這樣嗎?
我正在嘗試使用 getcwd 獲取 dir 路徑,但我什至沒有格式化,所以我不明白為什么會收到此警告?我的代碼如下:
replace.c: In function ‘main’:
replace.c:49:8: warning: too many arguments for format [-Wformat-extra-args]
printf("Search begins in current folder: ",
getcwd(currDir,
sizeof(currDir)), "\n");
uj5u.com熱心網友回復:
printf 呼叫中的格式字串不包含轉換說明符。所以除了格式字串之外的第二個和第三個引數是多余的。
您似乎忘記%s在格式字串中包含轉換規范。
例如
printf( "Search begins in current folder: %s\n",
getcwd( currDir, sizeof( currDir ) );
注意 getcwd 的呼叫可以回傳一個空指標。所以在使用 printf 的呼叫之前需要檢查回傳值。
uj5u.com熱心網友回復:
您正在嘗試在 printf 中列印 getcwd() 函式,這就是它拋出這么多引數錯誤的原因。如果您想使用 getcwd() 獲取當前作業目錄,則可以嘗試使用以下代碼:
#include <unistd.h>
#include <stdio.h>
int main() {
char cwd[256];
if (getcwd(cwd, sizeof(cwd)) == NULL){
perror("getcwd() error");
}
else{
printf("current working directory is: %s\n", cwd);
}
return 0;
}
請提供更多代碼,以便我可以嘗試重現您的錯誤并修復您的代碼。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/520276.html
