关于C++的文件输入输出流问题

如果我要制作一个管理系统.将他记录到.txt中,再下次打开时还能使用该记录要怎么做?如:序号名称价格1苹果62橙5我想的..第一行(无字符限制)不要.取第二行和第三行..... 如果我要制作一个管理系统.将他记录到.txt中,再下次打开时还能使用该记录要怎么做?

如: 序号 名称 价格
1 苹果 6
2 橙 5

我想的..第一行(无字符限制)不要.取第二行和第三行..其中第一列放到char Num中.第二列放到string name中.第三列放到int price中.

要怎么赋值?
展开
 我来答
xiongxiongai11
2013-04-01 · TA获得超过163个赞
知道答主
回答量:44
采纳率:0%
帮助的人:22万
展开全部
第一行读取之后不用,然后后面每行以空格/TAB键作为分割符取值赋值,我下面是按照空格写的小列子,可能会有点问题,没有运行过:
typedef struct {
char Num[2+1]; /*序号*/
char name[250+1]; /*品种*/
int price; /*价格*/
}ST_FRUIT;

int ReadTxt(char *filename){
ST_FRUIT st_fruit[5]; /* 假设有五种水果要存储 */
FILE *fp;
char *p;
char sTmp[1024+1];
char sPrice[20+1];
int len, i, j;

fp = NULL; fp = fopen(sFileName, "w");
if( NULL == fp )
{
sprintf("打开返回文件[%s]失败!", filename);
return -1;
}
fgets(sTmp, strlen(sTmp), sFileName);
j = 0
while ( !feof(fp) )
{
memset( sTmp, 0x00, sizeof(sTmp));
if( fgets(sTmp, strlen(sTmp), sFileName) == NULL );
break;

memset( &st_fruit[j], 0x00, sizeof(ST_FRUIT)); /* 初始化结构体 */

/* 每行以空格作为分割符 */ len = 0;
for( i = 0; i < 3; i++ )
{
p = NULL;
trim( sTmp );
p = strstr(sTmp, " ");
if ( p == NULL )
{
break;
}
if ( i = 0 )
memcpy(st_fruit.Num, sTmp, strlen(p));
else if ( i = 1 )
memcpy(st_fruit.name, sTmp, strlen(p));
else
{
memset(sPrice, 0x00, sizeof(sPrice));
memcpy(sPrice, sTmp, strlen(p));
st_fruit.price = atoi(sPrice);
}
len = strlen(sTmp) - strlen(p);
memcpy(sTmp, sTmp, len);
}
j ++;
}
fclose( fp );
return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式