Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c为循环跳转优先_C - Fatal编程技术网

c为循环跳转优先

c为循环跳转优先,c,C,这是代码。问题是,当程序在循环中运行时,它会自动填充第一个单词。如果我写2。三,。单词aaaa和bbbb-输出类似于: 1字: 2字:aaaa 三字:bbbb intmain(){ 整数i,n,g,d,计数; char Vir[50][20]char temp[50]; printf(“Juris Kondrats | | | | 111RDB271 | | | | 3.grupa | | | 3.variants\n”); printf(“输入字数:\n”); scanf(“%d”和“&g”)

这是代码。问题是,当程序在循环中运行时,它会自动填充第一个单词。如果我写2。三,。单词aaaa和bbbb-输出类似于:

1字:

2字:aaaa

三字:bbbb

intmain(){
整数i,n,g,d,计数;
char Vir[50][20]char temp[50];
printf(“Juris Kondrats | | | | 111RDB271 | | | | 3.grupa | | | 3.variants\n”);
printf(“输入字数:\n”);
scanf(“%d”和“&g”);
printf(“您需要插入10个单词,最多10个单词长\n”,g);
printf(“按回车键”);
getche();
系统(“cls”);

对于(i=0;i我认为问题可能是由于“按enter”提示后输入流中剩余的额外字符。即换行

我认为您使用的是Windows平台,因为您正在发出
cls
system命令

因此,“回车”键将被转换为回车符和换行符

第一个是使用
scanf
读取整数。之后用户必须按ENTER键,但这些字符不会从输入中删除。我希望它会直接跳过“press ENTER”提示,因为流中有字符(其中两个)

第一个将被
getche()
删除,第二个将直接进入第一个
gets
调用,告诉它您刚刚到达一行的末尾,因此用户输入了一个空字符串

反正是这样的

解决此问题的一个蹩脚方法是在“按enter”提示符下使用
gets
而不是
getche
,然后只给它任何旧的字符串区域进行写入(不管怎样,您都会忽略结果)。这不是一个好的解决方案,但此时任何更复杂的操作都可能会让您感到困惑。

永远不要使用
gets()
函数。它无法安全使用,因为它无法防止存储的数据超过目标阵列的容量。
 int main(){
      int i,n,g,d,count;
            char Vir[50][20] char temp[50];

printf("Juris Kondrats ||| 111RDB271 ||| 3.grupa ||| 3.variants\n");
printf("enter amount of words: \n");
scanf("%d", &g);
printf("you need insert 10 words max 10 words long\n",g);
printf("press enter");
getche();

system("cls");

for(i=0;i<g;i++)
{
     printf("\ninsertt %d-o word\n",i+1);
     gets(Vir[i]);

}      
....