标题:帮忙看看哪里出错了
取消只看楼主
纸T0
Rank: 4
来 自:
等 级:业余侠客
威 望:2
帖 子:34
专家分:216
注 册:2013-11-16
结帖率:100%
已结贴  问题点数:20 回复次数:1 
帮忙看看哪里出错了
程序代码:
#include <string.h>
#include <iostream>
using namespace std;
struct ps {
    int age;
    string name;
};
ps *p = new ps;
int main()
{
    FILE *pa;
    pa = fopen("a.txt", "w+");
    scanf("%d,%s", p);
    fwrite(&(*p), sizeof(*p), 1, pa);
    fread(&(*p), sizeof(*p), 1, pa);
    printf("%d, %s", (*p).age, (*p).name);
    delete p;
    system("pause");
    return 0;
}
搜索更多相关主题的帖子: 出错 name int age sizeof 
2017-10-03 08:25
纸T0
Rank: 4
来 自:
等 级:业余侠客
威 望:2
帖 子:34
专家分:216
注 册:2013-11-16
得分:0 
以下是引用炎天在2017-10-4 10:54:31的发言:

#include <string.h>
#include <iostream>
using namespace std;
struct ps {
    int age;
    string name;
};
ps *p = new ps;
int main()
{
    FILE *pa;
    pa = fopen("a.txt", "w+");
    scanf("%d,%s", p->age,p->name);
    fwrite(&(*p), sizeof(*p), 1, pa);
    rewind(pa);
    fread(&(*p), sizeof(*p), 1, pa);
    printf("%d, %s", (*p).age, (*p).name);
    delete p;
    system("pause");
    return 0;
}

这段代码输入3 张三
程序会没响应。
程序代码:
#include <string>
#include <iostream>
using namespace std;
struct ps {
    int age;
    string name;
};
ps *p = new ps;
int main()
{
    FILE *pa;
    pa = fopen("a.txt", "w+");
    if (pa == NULL)
    {
        printf("打开文件失败\n");
    }
    else
    {
        printf("打开文件成功\n");
    }
    
        //scanf("%d,%s", p);
        cin >> (*p).age>>(*p).name;
        fwrite(&(*p).age, sizeof((*p).age), 1, pa);
        fwrite(&(*p).name,sizeof((*p).name),1,pa);
        fread(pa, sizeof(char), 1, pa);
        //printf("%d, %s", *p);
        cout << (*p).age<<' '<< (*p).name;
        fclose(pa);
        
    delete p;
    system("pause");
    return 0;
}

我还有问题。
输入3 中华人民共和国后
a.txt文件中是这样的,有好多个屯是怎么回事


2017-10-04 14:58



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-481099-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.327095 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved