如何使用scanf()
IN C接受来自命令行的多个输入?我试图在同一行上获取一个名称,然后是来自用户的任意数量的值。我知道scanf()
函数是空格/换行符。
例如,用户输入: 狗2 5 1
我知道scanf()
会读取" dog",但如何让它读取以下值。我无法使用scanf("%s, %d, %d, %d", a, b, c, d)
,因为输入的值可能超过或少于3。
答案 0 :(得分:1)
您可以将参数传递给main函数本身。 main的原型是
int main(int argc, char* argv[]);
您可以使用它来读取命令行参数。 argc给出了参数的总数(用空格分隔),而argv是一个包含它的向量。
例如,用户将输入:./yourExecutable dog 2 5 1
在这种情况下,参数的数量将是5(包括可执行文件的名称),argv[0]
将是您的可执行文件,argv [1]将是您的"dog"
,依此类推。
答案 1 :(得分:0)
您可以使用fgets()
将整行读取到字符串缓冲区。
然后使用strtok()
按空格分割。