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

如果我要制作一个管理系统.将他记录到.txt中,再下次打开时还能使用该记录要怎么做?

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

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

要怎么赋值?

第一行读取之后不用,然后后面每行以空格/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;
}
温馨提示:答案为网友推荐,仅供参考
相似回答