菜鸟c语言问题,如何根据用户输入的数值决定输出的文件名,求大神解答
需求:输出一个N * N 乘法表到一个文件中,N由用户决定,文件名为"N * N chengfb.txt",例如:用户输入13,则在文件名为"13 X 13 chengfb.txt"的文件中输入一个13*13的乘法表。
我的思路是这样子:用一个字符串数组存放文件名,但是有一个问题就是怎么把一个int型数据转化为char。下面是我的代码:
还有个问题是如果用宏的话,参数如果在字符串里有没有办法传递参数,这个能解决么
大神们还有什么办法能实现这个需求
谢谢大神们解答~
我的思路是这样子:用一个字符串数组存放文件名,但是有一个问题就是怎么把一个int型数据转化为char。下面是我的代码:
#include<stdio.h>
#include<string.h>
int main()
{
int i=0,j=0,n=0;
char file_name[20],*pstr; //存放文件名
pstr=file_name;
FILE* fpin;
printf("输出几阶乘法表?");
while(n<1 || n>99) //输入数字限制在1~99之间
{
scanf("%d",&n);
if(n<1 || n>99)
{
printf("数字大于99或非法,请重新输入!\n");
}
}
//修改文件名为“n X n chengfb.txt”,存放在file_name中
//下面是出错的地方
//*pstr=((char)n);//刚开始这样写,但是存进去的是ASCII码,输出后不是数字,还出错
strcpy(pstr,(char)n);pstr++;
strcpy(pstr," X ");pstr+=3;
strcpy(pstr,(char)n);pstr++;
strcpy(pstr," chengfb.txt");
if((fpin = fopen(file_name,"w")) == NULL) //打开文件
{
printf("无法打开文件!\n");
system("pause");
exit(1);
}
for(i=1;i<=n;i++)
{
for(j=1;j<=i;j++)
{
fprintf(fpin,"%d X %d = %-3d ",i,j,j*i);
}
fputc('\n',fpin);
}
fclose(fpin);
printf("已输出到当前目录下,文件名为“%d X %d chengfb.txt”\n",n,n);
system("pause");
}
还有个问题是如果用宏的话,参数如果在字符串里有没有办法传递参数,这个能解决么
#define openfile(n) fopen("n X n chengfb.txt","w")
大神们还有什么办法能实现这个需求
谢谢大神们解答~
...全文
相关推荐
清华尹成C语言从菜鸟到高手.pdf
"《清华尹成C语言从菜鸟到高手》是一本系统介绍C语言学习路径的教程,旨在帮助读者从零基础逐渐成长为C语言的高手。该书分为三个主要部分:C语言的基础入门、跨平台编程实践和深入理解数据类型、运算符与表达式
C语言菜鸟基础教程之求1到100的和
本资源是一份C语言基础教程,专注于指导菜鸟学习如何求解1到100的整数和。教程首先通过数学方法展示了求和的过程,利用等差数列的求和公式S = (首项+末项) * 项数 / 2,得出结果为5050。然后
菜鸟驿站包裹管理系统.zip
输入/输出处理:用户界面是系统与用户交互的关键。C语言的scanf和printf函数可以实现标准输入输出,用于获取用户输入和显示系统反馈。
C语言菜鸟基础教程之自定义函数
本篇C语言菜鸟基础教程专注于讲解如何创建和使用自定义函数。首先,让我们从理解C语言函数的基础概念入手。在C语言中,函数是一种可重用的代码块,用于执行特定任务并可以接受输入(形式参数)和返回值。函数定义
C语言菜鸟基础教程之Hello World
在这个C语言菜鸟基础教程中,我们首先了解了如何设置开发环境,包括推荐使用的编译器,如Mac上的Xcode和PC上的Dev C++。学习者将开始编写他们的第一个C语言程序——"Hello World!"


新手乐园
