免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4624 | 回复: 6
打印 上一主题 下一主题

如何用数字给文件名命名? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-03-23 23:19 |只看该作者 |倒序浏览
我想在一个循环中写出多个文件,文件名全部用类似于 1.bmp   2.bmp  ....
如:     
        ofstream fout;
        for (int i=1;i<10;i++)
                fout.open(strcat(???,".bmp");

请问???处应该怎么样处理????

今天去问老师,他说有个什么str(int)函数?!?!

error C2065: 'str' : undeclared identifier

完全是在欺骗劳动人民的感情嘛……

论坛徽章:
0
2 [报告]
发表于 2004-03-24 08:54 |只看该作者

如何用数字给文件名命名?

sprintf(fname,"%d.bmp",i);

论坛徽章:
0
3 [报告]
发表于 2004-03-24 09:33 |只看该作者

如何用数字给文件名命名?

就使用
#include<fstream>;

fstream fout;
fout.open(...);

我不想使用到C当中的sprintf语句,就用标准C++的语法

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
4 [报告]
发表于 2004-03-24 09:49 |只看该作者

如何用数字给文件名命名?

难道sprintf不是c++标准的语法吗?

论坛徽章:
0
5 [报告]
发表于 2004-03-24 10:46 |只看该作者

如何用数字给文件名命名?

可以建立一个字符数组:
char[128];

ofstream fout;
for (int i=0;i<10;i++)
{
strcpy(char,"x.bmp";   
char[0]=(char)(i+4;
fout.open(char);
}

论坛徽章:
0
6 [报告]
发表于 2004-03-24 11:43 |只看该作者

如何用数字给文件名命名?

如果不想用 sprintf 类函数的话,可以借助于 stringstream 来完成类型转换。

  1.   ofstream fout();
  2.   string filename;
  3.   stringstream ss;

  4.   for (int i=1; i<10; i++) {
  5.     ss << i;
  6.     filename = ss.str() + ".bmp";
  7.     ss.str("");
  8.     fout.open( filename.c_str() );
  9.   }
复制代码

论坛徽章:
0
7 [报告]
发表于 2004-03-25 00:11 |只看该作者

如何用数字给文件名命名?

楼上的老大们……
我最后还是去借了个MSDN装起了。以下我从帮助文档中得到的答案:

  1. //从cin输入中得到string
  2. #include<iostream>;
  3. #include<string>;
  4. using namespace std;

  5. int main()
  6. {
  7.         string str;
  8.         getline(cin,str);
  9.         cout<<str;
  10.         return 0;
  11. }

  12. //从文件中得到string
  13. #include<iostream>;
  14. #include<fstream>;
  15. #include<string>;
  16. using namespace std;

  17. int main()
  18. {
  19.         ifstream in("a.txt");
  20.         string str;
  21.         while(getline(in,str))
  22.         cout<<str<<endl;
  23.         return 0;
  24. }

  25. //用char *_itoa( int value, char *string, int radix );
  26. #include<iostream>;
  27. #include<fstream>;
  28. #include<string>;
  29. using namespace std;

  30. int main()
  31. {
  32.         int i =4;
  33.         string str;
  34.         char buffer[10];
  35.         str = _itoa(i,buffer,10);
  36.         cout<<str;
  37.         return 0;
  38. }

  39. int main()
  40. {
  41.         int i =4;
  42.         string str;
  43.         char buffer[10];
  44.         _itoa(i,buffer,10);
  45.         cout<<buffer;
  46.         return 0;
  47. }
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP