鱼C论坛

 找回密码
 立即注册
查看: 1049|回复: 2

[已解决]c语言问题

[复制链接]
发表于 2019-12-13 13:08:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我都去一个txt格式的文件里面有
1.chinese 2.Czech Republic 3.Cuba 4.Democratic People's Republic of Korea
一些国家的名字,我要怎么样才能读取这个txt时把这些国家放到一个数组里
就像chinese就是country[0],Czech Republic就是country[1]这样,因为他中间有空格我不知道要怎么弄了
最佳答案
2019-12-13 14:22:32
参考上下文,当然,如果你txt文件时这样的
  1. chinese Czech Republic Cuba Democratic People's Republic of Korea
复制代码
那么没法判断
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-12-13 14:22:32 | 显示全部楼层    本楼为最佳答案   
参考上下文,当然,如果你txt文件时这样的
  1. chinese Czech Republic Cuba Democratic People's Republic of Korea
复制代码
那么没法判断
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-13 15:46:17 | 显示全部楼层
如果txt是你写的这样的
  1. 1.chinese 2.Czech Republic 3.Cuba 4.Democratic People's Republic of Korea
复制代码


给个参考
  1. #include <stdio.h>
  2. #include <string.h>

  3. #define __Out__
  4. #define N 255

  5. int GetCountryNameFromFile(const char* path,char __Out__ (*names)[N]){
  6.         FILE* fp=fopen(path,"r");
  7.        
  8.         int i=0;
  9.         char *p=names[i];

  10.         while (fscanf(fp,"%s",p)!=EOF){
  11.                 int c_digit=-1;
  12.                 while (isdigit(p[++c_digit]));
  13.                 int length=strlen(p);
  14.                
  15.                 if (c_digit==0){
  16.                         p[-1]=' ';
  17.                 }
  18.                 else{
  19.                         strcpy(names[i++],p+c_digit+1);
  20.                         length-=c_digit+1;
  21.                         p=names[i-1];
  22.                 }
  23.                 p+=length+1;
  24.         }
  25.        
  26.         fclose(fp);
  27.         return i;
  28. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-25 07:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表