Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.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的输入编号(int)_C - Fatal编程技术网

不带换行符c的输入编号(int)

不带换行符c的输入编号(int),c,C,如何输入没有空格的数字(int) 只要输入不是零,我就想停止scanf。 我怎么做 #include <stdio.h> int main() int num; { while(num!=0){ printf("Enter the account activity: "); scanf("%d", &num); if(num==0){ break;

如何输入没有空格的数字(int)

只要输入不是零,我就想停止scanf。 我怎么做

#include <stdio.h>
int main()
int num;
{
    while(num!=0){
        printf("Enter the account activity: ");
        scanf("%d", &num);
        if(num==0){
            break;
        }   
    }
}
#包括
int main()
int-num;
{
while(num!=0){
printf(“输入帐户活动:”);
scanf(“%d”和&num);
如果(num==0){
打破
}   
}
}

不要使用
scanf
使用其他东西,例如:

#include<stdio.h>
#define MAX 100

int main(void)
{
    int i,count=0;
    int num=0, block=0;
    int sign=1;
    int arr[MAX] = {[0 ... MAX-1]=-1};

    while((i=getchar())!=EOF)
    {
         if(block==0)         //FIRST THING TO BE ENTERED BY USER IS SIGN OF INTEGER
         {
             if(i=='-')
                 block=1;
             sign=-1;
             continue;
         }
         if((i>'0')&&(i<='9'))
         {
             arr[count++]= i -'0';
         }
         else 
             break;
    }

            i=0;
    printf("The number is: ");
    while(i<count)
    {
        num=arr[i++]+num*10;
    }
    printf("%d",sign*num);
    return 0;
}
#包括
#定义最大值100
内部主(空)
{
int i,计数=0;
int num=0,block=0;
int符号=1;
int arr[MAX]={[0…MAX-1]=-1};
而((i=getchar())!=EOF)
{
if(block==0)//用户首先要输入的是整数的符号
{
如果(i='-')
块=1;
符号=-1;
持续
}

如果((i>'0')&(i我冒昧地稍微修改了一下您的代码,并假设您想要一个总和

#include <stdio.h>

int main(void) {
    int num, sum = 0;
    printf("Enter the account activity: ");
    fflush(stdout);
    for (;;) {
        if (scanf("%d", &num) != 1) break;
        if (num == 0) break;
        sum += num;
    }
    printf("Result is %d.\n", sum);
    return 0;
}
#包括
内部主(空){
int num,sum=0;
printf(“输入帐户活动:”);
fflush(stdout);
对于(;;){
如果(scanf(“%d”,&num)!=1)中断;
如果(num==0)中断;
sum+=num;
}
printf(“结果为%d.\n”,总和);
返回0;
}
/*打印和存储(最后一个整数值)并在输入值为0时终止的程序*/
#包括
int main(){
int num=1;
while(num!=0){
printf(“\n输入帐户活动:”);
scanf(“%d”和&num);
如果(num==0)
打破
}
返回0;
}

num在哪里声明?我更新了代码您是否希望输入没有空格,甚至在不同的数字之间也没有空格?数字制表符、逗号或其他字符之间有哪些字符分隔?是否有换行符或返回字符?或者输入只是一个没有任何其他字符的数字流?我的意思是没有换行符,只有空格不是吗newline@EladAspis是的,但是如果不是在一个数组中,您想将数字存储在哪里-您的
num
一次只能保存一个数字。这对-17有什么帮助?
int main(void)
{
    int num;
    int ch = 0; // used for reading and discarding garbage from stdin

    printf("Enter the account activity: ");
    do {
        if(scanf("%d", &num) == 1) // check if an in could be read successfull
            printf("%d\n", num);   // if so, print it.
        else {                     // otherwise
            // read characters from stdin until EOF is reached
            while ((ch = getchar()) != EOF)
                if (isdigit(ch)         // if the last character 
                    || ch == '+'        // was a valid character to
                    || ch == '-') {     // begin a new int,
                    ungetc(ch, stdin);  // put it back into the stream
                    break;              // and break the while
                }
        }
    } while (num && ch != EOF);
}
/*Program that prints and stores(last integer value) and terminates on input value of 0 */
#include <stdio.h>
int main(){
int num=1; 
while(num!=0){
    printf("\nEnter the account activity: ");
    scanf(" %d", &num);
    if(num==0)
        break;   
 }
return 0;
}