yy_lq1 2022-10-17 23:07 采纳率: 75%
浏览 18
已结题

c语言怎样用ctrl+z结束时不被换行符影响

该代码在zuo ye程序运行时可以通过,但是我自己输入11位数字并换行用ctrl+z结束时总是会读取到换行符,导致失败,请问怎么解决,或者zuo ye程序结束时为什么不会读到换行符。

#include<stdio.h>
 int main(){
    char s[100];
    int i=0;
    char c;
    int a;
    while(c!=EOF)
    {
c=getchar();
s[i]=c;
i++;
    }
    if(s[11]==EOF&&s[10]!=EOF&&s[9]!=EOF&&s[8]!=EOF&&s[7]!=EOF&&s[6]!=EOF&&s[5]!=EOF&&s[4]!=EOF&&s[3]!=EOF&&s[2]!=EOF&&s[1]!=EOF&&s[0]!=EOF)
    {
        for(a=0;a<11;a++)
        {
            if(!('0'<=s[a]&&s[a]<='9'))
            printf("字符串中存在非数字字符");
            if(!('0'<=s[a]&&s[a]<='9'))
            break;
        }
        if(a==11)
        {if(s[0]=='1')
        {
         if((s[1]=='3')|(s[1]=='4')|(s[1]=='5')|(s[1]=='7')|(s[1]=='8'));
         else printf("第2位不合法");
        }
        else printf("第1位不合法");}
    }
    else
    printf("长度不合法");
    printf("%d",s[13]);
    }

  • 写回答

1条回答 默认 最新

  • 浪客 2022-10-17 23:45
    关注
    大概改了下,回车作为结束符。
    
    int main()
    {
        char s[100] = {0};
        int i = 0;
        char c;
        int a;
        while ((c = getchar()) != '\n')
        {
            s[i] = c;
            i++;
        }
        if (i == 11)
        {
            for (a = 0; a < 11; a++)
            {
                if ('9' <= s[a] && s[a] <= '0')
                {
                    printf("字符串中存在非数字字符\n");
                    break;
                }
            }
            if (a == 11)
            {
                if (s[0] == '1')
                {
                    if (!(s[1] == '3' || s[1] == '4' || s[1] == '5' || s[1] == '7' || s[1] == '8'))
                        printf("第2位不合法\n");
                }
                else
                    printf("第1位不合法\n");
            }
        }
        else
            printf("长度不合法");
        printf("%s", s);
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月1日
  • 已采纳回答 10月24日
  • 创建了问题 10月17日

悬赏问题

  • ¥15 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 R语言卸载之后无法重装,显示电脑存在下载某些较大二进制文件行为,怎么办
  • ¥15 java 的protected权限 ,问题在注释里