在 C 语言中接受来自命令行的输入


如何使用

scanf() IN C 接受来自命令行的多个输入?我试图在同一行上获取一个名称,后跟来自用户的任意数量的值。我知道scanf()函数是空格/换行符分隔的。

例如,用户输入:狗 2 5 1

我知道scanf()会读取"狗",但是我如何让它读取以下值。我不能使用scanf("%s, %d, %d, %d", a, b, c, d)因为输入的值可能大于或少于 3 个。

您可以将参数传递给主函数本身。主的原型是

int main(int argc, char* argv[]);

您可以使用它来读取命令行参数。argc 给出参数的总数(用空格分隔),argv 是保存它的向量。

例如,用户将输入:./yourExecutable dog 2 5 1在这种情况下,参数的数量将是 5(包括可执行文件的名称),argv[0]是可执行文件,argv[1] 将是您的"dog",依此类推。

您可以使用

fgets() 将整行读取到字符串缓冲区。

然后使用 strtok() 按空格分割。

相关内容

  • 没有找到相关文章

最新更新