C++的分离数据问题

C++的分离数据问题,第1张

如果你说的输入是指从键盘输入那么就用格式:

char a[80],b[80],c[80];

scanf("%s%s%s",a,b,c);

这里scanf()格式中%s%s%s之间没有空格,输入时你可以在一行上同时输入姓名身份z号、工作等等,中间用空格(多少个无所谓)隔开;也可以在输入姓名之后按回车键在第二行输入身份z号再回车再在第三行输入工作等。即

姓名__ 身份z号_______工作

或者

姓名_______身份z号

工作

或者

姓名

身份z号

工作

等等。scanf()函数的特点就是以空格或者Tab或者回车键作为一次数据输入的结束。各数据中间只要有空格你输入的姓名、身份z号、工作就分别自动存到字符数组a[80],b[80],c[80]中

如果你说的是从磁盘文件中读出一行数据分别存到a[80],b[80],c[80]中,可以用fscanf()函数来实现。我给你举个例子,比如我的文件w02txt的内容为:

weiwei 10102266 worker

mali 10220135 teacher

weifang 10219936 trader

wangping 10330088 scientist

现在要把它读出来分别存放,则一个完整的c程序如下,程序在win-tc和Dev-c++下已调试通过。这是我写的,你参考一下,比较一下程序执行后w02txt和w03txt以及屏幕上的输出。

#include <stdioh>

#include <conioh>

#include <stringh>

#define N 100 /最多读出100行数据/

main()

{

int i=0,j,max;

long b[N]; /假定身份z号为长整型数/

char s[N][81],a[N][20],c[N][20],p; /s[N][81]用来读入文件w02txt的内容并写进磁盘文件w03txt/

FILE fp1,fp2;

fp1=fopen("w02txt","r");

fp2=fopen("w03txt","w");

while (i<N&&fgets(s[i],81,fp1)!=NULL)

{

p=strchr(s[i],'\n'); /将每一行最后的回车符去掉/

if(p)

p='\0';

i++;

}

max=i;

rewind(fp1); /重新定位文件内的位置指针/

for(i=0;i<max;i++)

{ fscanf(fp1,"%s%ld%s\n",a[i],&b[i],c[i]);/按"%s%ld%s\n"格式分别存放姓名到数组a[][],身份z号到数组b[],工作到数组c[][]中/

fprintf(fp2,"%s\n",s[i]); /输出到文件w03txt中/

printf("%s\t\t",a[i]); /打印到屏幕上/

printf("%ld\t\t",b[i]);

printf("%s\n",c[i]);

}

fclose(fp1);

fclose(fp2);

getch();

}

首先在EXCEL中打开这个文件,选中要分列的单元格或某个区域,请确保选择区有足够的空白区,然后单击"数据"菜单-->"分列"项,按提示 *** 作即可(分隔符要选择正确)最大数,最小数可以使用MAX,MIN工作表函数

看懂了没?再给你补充一下,选择固定宽度

下一步,然后看到那些箭头了没?要分哪就点一下,双击那个箭头,箭头就没了,单击一下就出来了,多少个箭头代表会分成多少个单元格

以上就是关于C++的分离数据问题全部的内容,包括:C++的分离数据问题、EXCEL 如何将单元格数据分离、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10103065.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存