鱼C论坛

 找回密码
 立即注册
查看: 2476|回复: 7

VC++编译(C++结构体)显示can\'t XXX

[复制链接]
发表于 2015-11-26 20:05:32 | 显示全部楼层 |阅读模式
5鱼币
本帖最后由 Ъγ:_小ツ雨oο 于 2015-12-2 22:17 编辑
  1. #include <iostream>
  2. #include <fstream>
  3. #include <windows.h>         // 为了使用Sleep()函数

  4. using namespace std;

  5. struct FishOil
  6. {
  7.         std::string name;
  8.         std::string uid;
  9.         char sex;
  10. };


  11. bool InitFishC();
  12. bool ReadFishC();
  13. void RecordFishC();
  14. bool WriteFishC(FishOil *OilData);

  15. int main()
  16. {
  17.         int i;
  18.        
  19.         InitFishC();  // 初始化数据。
  20.         while( 1 )
  21.         {
  22.                 std::cout << "请选择需要进行的操作: \n";
  23.                 std::cout << "1. 打印数据到屏幕\n";
  24.                 std::cout << "2. 录入数据\n";
  25.                 std::cout << "3. 退出程序\n";
  26.                 std::cin >> i;
  27.                
  28.                 switch( i )
  29.                 {
  30.                         case 1:
  31.                                 if( ReadFishC() )
  32.                                         std::cout << "成功读取文件^_^\n\n";
  33.                                 else
  34.                                         std::cout << "读取文件失败T_T\n\n";
  35.                                 break;
  36.                         case 2:
  37.                                 RecordFishC();
  38.                                 break;
  39.                         case 3:
  40.                                 return 0;       
  41.                 }
  42.         }
  43.        
  44.         std::cout << "初始化失败T_T......\n\n";
  45.                  
  46.         return 0;
  47.        
  48. }

  49. bool InitFishC()
  50. {
  51.                 FishOil OilInit = {"小甲鱼", "fishc00001", 'M'};
  52.          
  53.         if( WriteFishC(&OilInit) == false )
  54.                 std::cout << "初始化失败T_T\n";  
  55. }

  56. bool ReadFishC()
  57. {
  58.         std::string temp;
  59.         std::ifstream fileInput("FishC.txt");
  60.        
  61.         if( fileInput.is_open() )
  62.         {
  63.                 std::cout << "\n正在输出记录数据...... ";
  64.                 for( int i=0; i <= 100; i++ )      // 打印百分比
  65.                 {
  66.                         std::cout.width(3);
  67.                         std::cout << i << "%";
  68.                         Sleep(50);
  69.                         std::cout << "\b\b\b\b";
  70.                 }
  71.                 std::cout << "\n\n";
  72.                

  73.                 std::cout << " 姓名 " << "  身份证  " << " 性别 " << "\n\n";
  74.                  
  75.                 while( std::getline( fileInput, temp ) )
  76.                 {
  77.                         std::cout << temp << "   ";
  78.                         std::cout << "\n";
  79.                 }
  80.                 std::cout << "\n\n";
  81.                
  82.                 return true;
  83.         }
  84.         else
  85.                 return false;
  86. }

  87. void RecordFishC()
  88. {
  89.         char goon, Save;
  90.         FishOil OilData;
  91.         FishOil *pOilData;
  92.        
  93.         goon = 'Y';
  94.         while( 'Y' == goon )
  95.         {
  96.                 std::cout << "请输入鱼C账号: ";
  97.                 std::cin >> OilData.name;
  98.                 std::cout << "请输入鱼C身份证:";
  99.                 std::cin >> OilData.uid;
  100.                 std::cout << "请输入性别:";
  101.                 std::cin >> OilData.sex;
  102.                
  103.                 std::cout << "录入成功, 请问需要保存吗?(Y/N)";
  104.                 std::cin >> Save;        
  105.                 if( 'Y' == Save )
  106.                 {
  107.                         pOilData = &OilData;
  108.                         if( WriteFishC( pOilData ) )
  109.                                 std::cout << "成功写入文件^_^\n";
  110.                         else
  111.                                 std::cout << "写入文件失败T_T\n";       
  112.                 }
  113.                 else
  114.                 {
  115.                         return;
  116.                 }
  117.                
  118.                 std::cout << "/n请问需要再次录入吗?(Y/N)";
  119.                 std::cin >> goon;
  120.         }
  121. }

  122. bool WriteFishC( FishOil *pOilData )
  123. {
  124.         std::ofstream fileOutput("FishC.txt", std::ios::app);  
  125.                 // std::ios::app用来说明在老数据追加新数据
  126.         if( fileOutput.is_open() )
  127.         {
  128.                 fileOutput << pOilData->name << " ";
  129.                 fileOutput << pOilData->uid << " ";
  130.                 fileOutput << pOilData->sex << "\n";
  131.                
  132.                 fileOutput.close();
  133.                 std::cout << "数据成功保存到FishC.txt\n\n";
  134.         }
  135.         else
  136.                 std::cout << "保存失败T_T\n";        
  137. }
复制代码
222.jpg   求解  百度 了 几遍也没合适的答案   :dizzy: 是不是VC++编译器的问题

最佳答案

查看完整内容

我手头是vs2010 没vc6 不过 我觉得还是vc6的编译器太老了, 不支持默认就提供缺省构造函数和有参数的构造函数 我添加了这两个构造函数 你试试能不能编译通过
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-11-26 20:05:33 | 显示全部楼层
我手头是vs2010 没vc6
不过 我觉得还是vc6的编译器太老了, 不支持默认就提供缺省构造函数和有参数的构造函数
我添加了这两个构造函数 你试试能不能编译通过
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-11-27 08:50:50 | 显示全部楼层
少年 麻烦把全部代码拷贝过来

根据编译器的提示, 明显是没有一个合适的构造函数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-12-2 21:08:21 | 显示全部楼层
骚年,我们需要你完整的代码:smile
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-12-2 22:19:09 | 显示全部楼层
ryxcaixia 发表于 2015-11-27 08:50
少年 麻烦把全部代码拷贝过来

根据编译器的提示, 明显是没有一个合适的构造函数

问题忘了 今天上鱼C 才又看到了, 代码贴上了  求编译   VC++6.0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-12-2 22:20:11 | 显示全部楼层
Maninblack 发表于 2015-12-2 21:08
骚年,我们需要你完整的代码

嗯  嗯  代码 贴上了,  VC++6.0   求编译
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-12-3 08:44:22 | 显示全部楼层
  1. #include <iostream>
  2. #include <fstream>
  3. #include <windows.h>         // 为了使用Sleep()函数

  4. using namespace std;

  5. struct FishOil
  6. {
  7.         FishOil(const std::string Name, const std::string Uid, const char Sex):name(Name), uid(Uid), sex(Sex) {} // construction function
  8.         FishOil() {} // default construction function
  9.         std::string name;
  10.         std::string uid;
  11.         char sex;
  12. };


  13. bool InitFishC();
  14. bool ReadFishC();
  15. void RecordFishC();
  16. bool WriteFishC(FishOil *OilData);

  17. int main()
  18. {
  19.         int i;

  20.         InitFishC();  // 初始化数据。
  21.         while( 1 )
  22.         {
  23.                 std::cout << "请选择需要进行的操作: \n";
  24.                 std::cout << "1. 打印数据到屏幕\n";
  25.                 std::cout << "2. 录入数据\n";
  26.                 std::cout << "3. 退出程序\n";
  27.                 std::cin >> i;

  28.                 switch( i )
  29.                 {
  30.                 case 1:
  31.                         if( ReadFishC() )
  32.                                 std::cout << "成功读取文件^_^\n\n";
  33.                         else
  34.                                 std::cout << "读取文件失败T_T\n\n";
  35.                         break;
  36.                 case 2:
  37.                         RecordFishC();
  38.                         break;
  39.                 case 3:
  40.                         return 0;        
  41.                 }
  42.         }

  43.         std::cout << "初始化失败T_T......\n\n";

  44.         return 0;

  45. }

  46. bool InitFishC()
  47. {
  48.         FishOil OilInit("小甲鱼", "fishc00001", 'M');

  49.         if( WriteFishC(&OilInit) == false )
  50.         {
  51.                 std::cout << "初始化失败T_T\n";  
  52.                 return false;
  53.         }

  54.         return true;
  55. }

  56. bool ReadFishC()
  57. {
  58.         std::string temp;
  59.         std::ifstream fileInput("FishC.txt");

  60.         if( fileInput.is_open() )
  61.         {
  62.                 std::cout << "\n正在输出记录数据...... ";
  63.                 for( int i=0; i <= 100; i++ )      // 打印百分比
  64.                 {
  65.                         std::cout.width(3);
  66.                         std::cout << i << "%";
  67.                         Sleep(50);
  68.                         std::cout << "\b\b\b\b";
  69.                 }
  70.                 std::cout << "\n\n";


  71.                 std::cout << " 姓名 " << "  身份证  " << " 性别 " << "\n\n";

  72.                 while( std::getline( fileInput, temp ) )
  73.                 {
  74.                         std::cout << temp << "   ";
  75.                         std::cout << "\n";
  76.                 }
  77.                 std::cout << "\n\n";

  78.                 return true;
  79.         }
  80.         else
  81.                 return false;
  82. }

  83. void RecordFishC()
  84. {
  85.         char goon, Save;
  86.         FishOil OilData;
  87.         FishOil *pOilData;

  88.         goon = 'Y';
  89.         while( 'Y' == goon )
  90.         {
  91.                 std::cout << "请输入鱼C账号: ";
  92.                 std::cin >> OilData.name;
  93.                 std::cout << "请输入鱼C身份证:";
  94.                 std::cin >> OilData.uid;
  95.                 std::cout << "请输入性别:";
  96.                 std::cin >> OilData.sex;

  97.                 std::cout << "录入成功, 请问需要保存吗?(Y/N)";
  98.                 std::cin >> Save;         
  99.                 if( 'Y' == Save )
  100.                 {
  101.                         pOilData = &OilData;
  102.                         if( WriteFishC( pOilData ) )
  103.                                 std::cout << "成功写入文件^_^\n";
  104.                         else
  105.                                 std::cout << "写入文件失败T_T\n";        
  106.                 }
  107.                 else
  108.                 {
  109.                         return;
  110.                 }

  111.                 std::cout << "/n请问需要再次录入吗?(Y/N)";
  112.                 std::cin >> goon;
  113.         }
  114. }

  115. bool WriteFishC( FishOil *pOilData )
  116. {
  117.         std::ofstream fileOutput("FishC.txt", std::ios::app);  
  118.         // std::ios::app用来说明在老数据追加新数据
  119.         if( fileOutput.is_open() )
  120.         {
  121.                 fileOutput << pOilData->name << " ";
  122.                 fileOutput << pOilData->uid << " ";
  123.                 fileOutput << pOilData->sex << "\n";

  124.                 fileOutput.close();
  125.                 std::cout << "数据成功保存到FishC.txt\n\n";
  126.         }
  127.         else
  128.         {
  129.                 std::cout << "保存失败T_T\n";      
  130.                
  131.                 return false;
  132.         }

  133.         return true;
  134. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-12-3 18:49:34 | 显示全部楼层
ryxcaixia 发表于 2015-12-3 08:46
我手头是vs2010 没vc6
不过 我觉得还是vc6的编译器太老了, 不支持默认就提供缺省构造函数和有参数的构造函 ...

还是不行  换了小甲鱼视频里的 C-FREE 就自己好了   编译器的  问题   不用VC++了,都不支持高亮  太落伍了{
谢谢喽 ,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-18 13:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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