如果你说的输入是指从键盘输入那么就用格式:
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 如何将单元格数据分离、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)