将用户输入的单行赋值到C / CH中的多维数组中



我遇到的问题是我需要能够从单行用户输入存储2个值到单个字符数组。格式将是"input1 input2",其中input1是一个字符串,如'C2', input2是一个整数或双精度,如'1.25',用户将输入这些值,只有一个空格来分隔它们。例子:

User Input
C2 1.25

另一件事是我正在使用的编程语言,这是C的超集和c++的一个子集。到目前为止,我只是学习一些C代码不工作在我的IDE (ChIDE)。我还没怎么学c++。目前,在我正在读的书中,我正处于Ch和C/c++之间的过渡点。

到目前为止,我已经尝试了几行代码,但我的书中没有扫描多个用户输入值在单行和在线的例子,我发现这个fgets代码似乎工作,但我不能使它与二维数组工作。

char userNoteName[15][15];
//15 is arbitrary, ideally I want to use variables
//and that the number of inputted values would be unknown.
printf("Enter notes one at a time, in the format A#4 3,n");
printf("where the first string is the note, and the numbern");
printf("that follows is the duration.n");
printf("Type Q when you are done entering notes.n");
fgets(userNoteName,15,stdin);
printf("%s",userNoteName);

我也尝试过使用两个数组,因为我不完全理解fgets函数,我不相信我的项目需要它,因为它还没有出现在书中。

这是我最初的思路。

char userNoteName[2][2];
scanf("%s%s", &userNoteName[0][0]);
printf("%sn", userNoteName);

虽然这是错误的,因为scanf没有正确格式化。我想我需要找到一个更好的学习资源编码。即使在网上,我也很难找到类似这个想法的东西。

我不懂C语言,但在C语言中是这样做的:

char userNoteName[3];
float userFloatValue;
scanf("%s %f", userNoteName, &userFloatValue);

%s用于将单词读取为字符串,%f读取为float

请注意,为了保存像C2这样的2个字符的字符串,必须将变量声明为包含3个字符,以允许空终止符。如果string1可以更长,则需要声明适当大小的变量,只需记住为null添加1。

最新更新