鱼C论坛

 找回密码
 立即注册
查看: 1792|回复: 10

C++全局函数问题

[复制链接]
发表于 2014-11-15 22:24:32 | 显示全部楼层 |阅读模式
10鱼币
#include<iostream>
#include<fstream>
#include<windows.h>
using namespace std
struct  FishOil
{
std::string name
std::string uid
char sex
};
bool InitFishC();
bool ReadFishC();
void RecordFishC();
bool WriteFishC(FishOil *OilData);

int main()
{
int i;
InitFishC();
while(1)
{
  std::cout<<"请选择需要进行的操作: \n";
  std::cout<<"1. 打印数据到屏幕\n";
  std::cout<<"2. 录入数据\n";
  std::cout<<"3. 退出程序\n";
  std::cin>>i;
  switch(i)
  {
  case 1:
   if(ReadFishC())
    std::cout<<"成功读取文件:";
   else
    std::cout<<"读取文件失败:";
   break;
  case 2:
   RecordFishC();
   break;
  case 3:
   return 0;
  }
}
std::cout<<"初始化失败T_T......\n\n";
return 0;
}
bool InitFishC()
{
FishOil OilInit = {"小甲鱼", "fishc00001", 'M'};
if(WriteFishC(&OilInit) == false)
  std::cout << "初始化失败T_T\n";
}
bool ReadFishC()
{
std::string temp;
std::ifstream fileInput("FishC.txt");
if(fileInput.is_open ())
{
  std::cout<<"\n正在输出记录数据...... ";
   for( int i =0; i<=100; i++)
   {
    std::cout.width(3);
    std::cout << i << "%";
    std::cout<<"\b\b\b\b";   
   }
   std::cout <<"\n\n";
   std::cout<<" 姓名 " << "  身份证  " << " 性别 " << "\n\n";
   while (std::getline  (fileInput.temp))
   {
    std::cout << temp << " ";
    std::cout << "\n";
   }
   std::cout <<"\n\n";
    return true;
}
else
  return false;
}
void RecordFishC()
{
char goon,Save;
FishOil OilData;
FishOil *pOilData;
goon ='Y';
while ('Y' ==goon)
{
  std::cout << "请输入鱼C账号: ";
  std::cin >> OilData.name;
  std::cout<<"请输入鱼C身份证:";
  std::cin >> OilData.uid;
  std::cout <<"请输入性别:";
  std::cin >> OilData.sex;
  std::cout <<"录入成功, 请问需要保存吗?(Y/N)";
  std::cin >>Save;
  if( 'Y' ==Save)
  {
   pOilData = &OilData;
   if(WriteFishC(pOilData))
    std::cout<< "成功写入文件^_^\n";
   else
    std::cout << "写入文件失败T_T\n";
  }
  else
  {
   return ;
  }
  std::cout<<"/n请问需要再次录入吗?(Y/N)";
  std::cin >>goon;
}
}
bool WriteFishC(FishOil *pOilData)
{
std::ofstream fileOutput("FishC.txt", std::ios::app);

if(fileOutput.is_open ())
{
  fileOutput << pOilData->name << " ";
  fileOutput << pOilData->uid << " ";
  fileOutput << pOilData->sex << "\n";
  fileOutput.close ();
  std::cout << "数据成功保存到FishC.txt\n\n";
}
else
  std::cout <<"保存失败T_T\n";
}

编译的时候编译器出现了这样的错误 点击这个错误提示的时候是在struct  FishOil函数这里报错的 我在百度上搜索了一下
说是头文件定义错了
error C2143: syntax error : missing ';' before '<class-head>'
fatal error C1004: unexpected end of file found
琢磨了好久我把struct  FishOil函数放在bool WriteFishC(FishOil *OilData);函数下面缺发现编译器是报错提示是在
bool InitFishC();函数这里 想问问到底是哪里写错了
syntax error : missing ';' before identifier 'bool'
fatal error C1004: unexpected end of file found

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-11-17 06:47:53 | 显示全部楼层
你的using namespace std语句,还有结构里面的语句都没有用";"分号结尾当然错误!!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-11-18 10:08:47 | 显示全部楼层
两包烟的钱,把不了妹买不了田,不如拿来支持小甲鱼推出更多原创教学视频!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-11-18 21:52:45 | 显示全部楼层
只爱你一人 发表于 2014-11-17 06:47
你的using namespace std语句,还有结构里面的语句都没有用";"分号结尾当然错误!!!!!

你是说 using namespace std语句加分号也报错呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-11-21 08:42:02 | 显示全部楼层
E~~~~~~~发现你一个严重错误,第68行
while (std::getline  (fileInput, temp))   //fileInput和temp之间是逗号,不是句点!
我把它改后就成功运行了!
还有个小问题,加了using namespace std后,所有的std::前缀都可以去掉了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-11-21 22:50:36 | 显示全部楼层
                长
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-11-27 15:20:12 | 显示全部楼层
struct  FishOil
{
std::string name
std::string uid
char sex
};
这里面的语句都没有分号啊!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-11-28 10:25:31 | 显示全部楼层
程序有以下几个不对的地方:
1、using namespace std;该语句后面要加上“;”号。
2、结构体FishOil里定义变量要加“;”号;
3、bool ReadFishC()函数中,读取文件while语句改成while (std::getline(fileInput,temp));楼主原先是“.”号,应改为","号。

上述修改完后,在我的电脑上程序能编译通过。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

头像被屏蔽
发表于 2014-12-2 20:04:12 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-4-3 10:27:00 | 显示全部楼层
C:\Users\Administrator\Desktop\QQ截图20150403102604.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-4-3 10:31:05 | 显示全部楼层

发错了,其实我是想截图来着。问题是:程序运行没问题,只是每次刚开始运行就会出现
                                 数据成功保存到FishC.txt

                                 初始化失败T_T
                                 请选择需要进行的操作:
                                1. 打印数据到屏幕
                                2. 录入数据
                                3. 退出程序

这个  初始化失败  是几个意思啊?看不出来问题在哪儿?
接下来进行操作没有任何问题,求解答:cry
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 21:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表