在c代码中按enter键时如何退出while循环?
问题是,如果我不使用while循环,程序运行得很好,但是一旦你使用while,它就会进入无限循环。。。如何更改此代码?我想一直询问字符串,直到用户按enter键退出。否则它应该继续询问字符串。scanf不会返回字符值,这是您当前正在检查以终止循环的内容。它返回从格式字符串成功解析的项目总数。这显然不等于'\n'在c代码中按enter键时如何退出while循环?,c,C,问题是,如果我不使用while循环,程序运行得很好,但是一旦你使用while,它就会进入无限循环。。。如何更改此代码?我想一直询问字符串,直到用户按enter键退出。否则它应该继续询问字符串。scanf不会返回字符值,这是您当前正在检查以终止循环的内容。它返回从格式字符串成功解析的项目总数。这显然不等于'\n' 您需要使用strcmp检查str是否包含换行符。希望您也要这样做……您能更好地解释一下您的问题吗。首先输入一个以回车结尾的字符串。。。继续询问字符串,但当他们按Enter键时,您说希望它
您需要使用strcmp检查str是否包含换行符。希望您也要这样做……您能更好地解释一下您的问题吗。首先输入一个以回车结尾的字符串。。。继续询问字符串,但当他们按Enter键时,您说希望它退出。回车与回车相同。好的。。它是一个获取用户输入的程序,类似于字符串EX-sadjksajkdjakdjkslajdklsajdksajsdlkajks,每个字符都有自己的ascii码,即数字。我们将所有字符相加为整数,然后除以64得到余数。剩余部分将被添加到32DEC,然后转换为char输出。而它的while循环应该一直向用户询问字符串,直到用户按enter键。所以基本上enter是用来退出while循环的。比如如何??你能说得更具体些吗?查一下strcmp。这很简单。strcmp\n,如果str正好等于一个换行符,str将返回0。您也可以通过索引str直接进行字符比较。如果str中的第一个字符等于一个换行符,str[0]='\n'将返回true。
#include <stdio.h>
#include <math.h>
#include <string.h>
int main(void){
char str[100];
char final;
int sum = 0;
int i = 0;
int reminder;
printf("Enter an abitrarily long string, ending with carriage return > ");
while(1){
//get user input of string unless they enter key exit
if((scanf("%[^\n]s", str)) != '\n'){
for(i = 0; i < strlen(str) ; i++)
{
sum += str[i];
}
reminder = sum%64; //sum of char then divide by 64 and remainder of sum
reminder = reminder + 32; // remainder + 32
final = reminder; //change the int to char
printf("Check sum is %c\n", final); // output
printf("Enter an abitrarily long string, ending with carriage return > ");
}
else
break;
}
return 0;
}