你好我有一個程序,接受一些參數和打印的東西,問題該程序打印所有的參數,而不是那些需要打印。如果您能告訴我我的錯誤以及如何解決此問題,我會很高興。該程序不能正確打印數據
碼 -
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char** argv)
{
int i;
for(i = 0; i < argc ; i++)
{
if("/n")
{
printf("My name is pop\n");
break;
}
}
for(i = 0; i < argc ; i++)
{
if("/b")
{
printf("My birthday is 7.1.1999\n");
break;
}
}
for(i = 0; i < argc ; i++)
{
if("/f")
{
printf("My favorite food is pizza\n");
break;
}
}
for(i = 0; i < argc ; i++)
{
if("/?")
{
printf("/n = print name\n/b = print Birthday\n/f = Favorite Food\n");
break;
}
}
}
這幾乎看起來像是在C語言中使用Perl成語的嘗試,像'「/ n」'這樣的字符串文字將會衰減爲一個將被評估爲真的指針。 –
像if(「/ n」)這樣的測試是雙重誤導的。如果你正在尋找一個換行符,那是用反斜槓拼寫'「\ n」',而不是斜槓。字符串常量從不具有零地址,因此條件始終爲真,因此「then」塊中的代碼始終執行。如果你希望用戶運行:'yourprog/n',你可能正在尋找像'if(strcmp(argv [i],「/ n」)== 0)'的東西,這是一種Windows的方式編寫命令行選項。 –