m0_62801663 2022-01-04 14:56 采纳率: 72%
浏览 28
已结题

这个代码哪里错了啊?为什么Visual c++6.0

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LINE 1024
char* substr(char *s,int startPos,int endPos){
char t[endPos-startPos];
strncpy(t, s + startPos, endPos);
t[endPos] = '\0';
printf("%s\n", t);
return t;
}
int index(char *a,char c)
{
//printf("index yunx");
int i=0;
while(a[i]!='\0')
{
if(a[i]==c)
break;
i++;
}
return i;
}
int main()
{
char buf[MAX_LINE]; /缓冲区/
FILE *fp; /文件指针/
int len; /行字符个数/
if((fp = fopen("word.txt","r")) == NULL)
{
perror("fail to read");
exit (1) ;
}
//FILE *fpWrite=fopen("newtest.txt","w");
//if(fpWrite==NULL)
//{ return 0; }
char wordArray[100][MAX_LINE];
int i=0,j=0;
while(fgets(buf,MAX_LINE,fp) != NULL)
{
len = strlen(buf);
j=len;
buf[len-1] ='\0'; /去掉换行符/
printf("%s\n",buf);
strcpy(wordArray[i],buf);
i++;
}
printf("in put your want to memory word number:\n");
int memoryWordNumber;
scanf("%d",&memoryWordNumber);
char sutinputword[50];
int wordLength,intindexO;
for(int j=0;j<memoryWordNumber;j++)
{
i = rand() % 10; //产生0~9的随机数,注意10会被整除
char a[50];
strcpy(a,wordArray[i]);
intindexO=index(a,' ');//取空格的位置。如apple 苹果 位置为6
len=strlen(wordArray[i]);
printf("in put the word %s\n",substr(wordArray[i],intindexO,len));
scanf("%s",sutinputword);
if(strcmp(sutinputword,substr(wordArray[i],0,intindexO))==0)//比较学生输入的与word里面的是否相等
printf("right!");
else printf("wrong");
}
return 0;
}

  • 写回答

1条回答 默认 最新

  • fuill 2022-01-04 15:17
    关注

    测试没问题, 你是不是文件没放对
    你在D盘建一个 t.txt 文件试试这个代码

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #define MAX_LINE 1024
    char* substr(char *s,int startPos,int endPos)
    {
        char t[endPos-startPos];
        strncpy(t, s + startPos, endPos);
        t[endPos] = '\0';
        printf("%s\n", t);
        return t;
    }
    int index(char *a,char c)
    {
    //printf("index yunx");
        int i=0;
        while(a[i]!='\0')
        {
            if(a[i]==c)
                break;
            i++;
        }
        return i;
    }
    int main()
    {
        char buf[MAX_LINE];
        //缓冲区/
        FILE *fp;
        //文件指针/
        int len;
        //行字符个数/
        if((fp = fopen("D:\\t.txt","r")) == NULL)
        {
            perror("fail to read");
            exit (1) ;
        }
    //FILE *fpWrite=fopen("newtest.txt","w");
    //if(fpWrite==NULL)
    //{ return 0; }
        char wordArray[100][MAX_LINE];
        int i=0,j=0;
        while(fgets(buf,MAX_LINE,fp) != NULL)
        {
            len = strlen(buf);
            j=len;
            buf[len-1] ='\0';
            //去掉换行符/
            printf("%s\n",buf);
            strcpy(wordArray[i],buf);
            i++;
        }
        printf("in put your want to memory word number:\n");
        int memoryWordNumber;
        scanf("%d",&memoryWordNumber);
        char sutinputword[50];
        int wordLength,intindexO;
        for(int j=0; j<memoryWordNumber; j++)
        {
            i = rand() % 10; //产生0~9的随机数,注意10会被整除
            char a[50];
            strcpy(a,wordArray[i]);
            intindexO=index(a,' ');//取空格的位置。如apple 苹果 位置为6
            len=strlen(wordArray[i]);
            printf("in put the word %s\n",substr(wordArray[i],intindexO,len));
            scanf("%s",sutinputword);
            if(strcmp(sutinputword,substr(wordArray[i],0,intindexO))==0)//比较学生输入的与word里面的是否相等
                printf("right!");
            else printf("wrong");
        }
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月12日
  • 已采纳回答 1月4日
  • 创建了问题 1月4日

悬赏问题

  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图