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 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上