Python新手晋级路 2023-09-30 11:48 采纳率: 58.3%
浏览 21
已结题

C语言:随机点名器代码设计

有人知道为什么我的字符串不能正常显示吗?错误图片及原文件代码如下:

img

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define MAX_str 4
#define MAX 10
int main()
{
    char str[MAX_str];
    FILE *file = fopen("name.txt", "r");
    srand(time(0));
    int random = rand() % (MAX + 1);
    printf("(%d)", random);
    int i = 1;
    while(i != random)
    {
        fscanf(file, "%s", &str);
        i++;
    };
    printf(str);
    return 0;
}
  • 写回答

2条回答 默认 最新

  • qzjhjxj 2023-09-30 16:12
    关注

    修改如下,改动处见注释,供参考:

    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    #define MAX_str  32                     // 修改
    #define MAX      10
    int main()
    {
        char str[MAX_str];
        srand((unsigned int)time(NULL));   // 修改  
        FILE* file = fopen("name.txt", "r");
        if (!file)    // 文件打开失败         修改
            return 1;    
        int random = rand() % MAX + 1;      // 修改 
        printf("(%d)", random);
        int  i = 0;                         // 修改
        while (i != random) {            
            if (fscanf(file, "%s", str) == 1)  // 修改
                i++;
            else                               // 修改
                break;                         // 修改  
        }
        if (i == random)                      // 修改
            printf("%s", str);
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月8日
  • 已采纳回答 9月30日
  • 创建了问题 9月30日

悬赏问题

  • ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
  • ¥15 怎么看我在bios每次修改的日志
  • ¥15 python+mysql图书管理系统
  • ¥15 Questasim Error: (vcom-13)
  • ¥15 船舶旋回实验matlab
  • ¥30 SQL 数组,游标,递归覆盖原值
  • ¥15 为什么我的数据接收的那么慢呀有没有完整的 hal 库并 代码呀有的话能不能发我一份并且我用 printf 函数显示处理之后的数据,用 debug 就不能运行了呢
  • ¥20 gitlab 中文路径,无法下载
  • ¥15 用动态规划算法均分纸牌
  • ¥30 udp socket,bind 0.0.0.0 ,如何自动选取用户访问的服务器IP来回复数据