ac了吗 2021-05-22 11:43 采纳率: 0%
浏览 37

int变量值自己变了

题目是,case.1文件里有一堆由数字、标点、字母、-连接符(连接单词)组成的文章里,将一个个单词读出写到words.txt里。

 

#include "stdio.h"
#include "math.h"
#include "string.h"
#include "stdlib.h"

void WritetoFile()
{
    FILE *fp=fopen("case1.txt","r"),*fp1=fopen("words.txt","w");
    char ch,a[100];
    a[0]='\0';
    int i=0,k=0;     //k用于单词是否开始读取
    while((ch=fgetc(fp))!=EOF)
    {
        if(ch=='-')
            continue;
        if(k==0)
        {
            if(a[0]!='\0')
                fprintf(fp1,"%s\n",a);
            i=0;
            a[i]='\0';
        }
        if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z')
        {
            k=1;
            if(ch>='a'&&ch<='z')
                a[i++]=ch;
            if(ch>='A'&&ch<='Z')
                a[i++]=ch+32;
            a[i]='\0';
        }
        else
            k=0;
    }
    fprintf(fp1,"%s\n",a);
    fclose(fp);
    fclose(fp1);
}


int main()
{
    WritetoFile();
}

k=1开始读单词,k=0表示单词读入完成了,输出完整的单词。

当遇到-时,就continue读下一个字符,k值应该是1不变啊,可是为什么k变成0了?

  • 写回答

1条回答 默认 最新

  • qfl_sdu 2021-05-22 12:44
    关注

    文件最后有回车或者一些不可见字符,导致运行了else k=0;。如有帮助,请采纳一下,谢谢。

    评论

报告相同问题?

悬赏问题

  • ¥15 这种小网站播放的音乐文件该如何下载?
  • ¥15 x-tile软件报错
  • ¥15 评论图片存取方案,求方法
  • ¥30 麒麟系统安装设置基础软件仓库时出错
  • ¥15 COMSOL溶质浸出模型构建
  • ¥100 求点云SHOT的C++手写版代码
  • ¥15 无界革命系统无法正常启动
  • ¥15 看了正点原子的ds18b20自己跟着写完发现读出来全是1,查了一天找不出原因快哭了
  • ¥16 问题:ValueError: could not broadcast input array from shape (12784,6,0) into shape (12784,6,9)
  • ¥15 APP使用微信登录 怎么爬取数据