代码: 全选
FILE *fp;
int i;
i = counter();//counter()来生成一个int数字
char a=(char)i;
char filename[]= { '\\', 'r', '\\', a,'\0' };
printf("filename:%s\n", filename);
fp=fopen(filename, "w");
..........
代码: 全选
FILE *fp;
int i;
i = counter();//counter()来生成一个int数字
char a=(char)i;
char filename[]= { '\\', 'r', '\\', a,'\0' };
printf("filename:%s\n", filename);
fp=fopen(filename, "w");
..........
可是, 要怎么转呀?Strange 写了:(char)不负责帮你吧int转换成相应的字符
推测一下,你的counter()应该是返回 0, 1, 2... ...的
这样,filename[]里就是
{ '\\', 'r', '\\', 0 ,'\0' };
{ '\\', 'r', '\\', 1 ,'\0' };
{ '\\', 'r', '\\', 2 ,'\0' };
... ...
不错就怪了
我也这样转了, 怎么还是出错呢?用强制类型转换就可以了, 但要注意整型变量的大小不要越界 ( >=0 <=255)
int n= 30;
char ch = (char)n;
多谢wuwud, 用sprintf解决问题了.wuwud 写了:gcc 下没有 _itoa(), so......用这个一样的效果。。。代码: 全选
sprintf(str,"%d",number);
代码: 全选
#include <string>
#include <sstream>
#include <iostream>
int main()
{
std::stringstream stream;
std::string result;
int i = 1000;
stream << i; //将int输入流
stream >> result; //从stream中抽取前面插入的int值
std::cout << result << std::endl; // print the string "1000"
}