键盘输入任意字符(以连着的三个小写字符bye做结束标志),将所有字符(包括bye),写入新建的文件answer.txt中(注:文件放在当前目录)。请完成该功能。
如键盘输入内容为:
He,can you write the code?
Yes,you can.bye
No,you cann't.
(程序执行后,在文件answer.txt中内容如下)
He,can you write the code?
Yes,you can.bye
头文件只有stdio.h
如键盘输入内容为:...........这只是个示例啊..不是简单去掉最后一行就行的.这里的控制输入问题我弄了很久都没成功啊..谢谢网友的回答..期待更好的答案
#include<stdio.h>
static int write_flag=1; /*写文件标志,即是否要将字符串写入文件*/
void function(char *str)
{
int i=0;
do
{
if((str[i++]=='b')&&(str[i]=='y')&&(str[i+1]=='e'))/*字符串中有“bye字串”*/
{ str[i+2]='\0'; /*截断字符串*/
write_flag=0; /*写文件标志置 0 */
break;
}
}while(str[i+2]!='\0');
}
int main()
{
int i,j;
char str[100]={0};
FILE *fp;
fp=fopen("answer.txt","w");
do
{
gets(str);
function(str);
fprintf(fp,"%s\n",str);
}while(write_flag);
fclose(fp);
while(1) gets(str);/*接收其他无效字符串。自己添加程序结束条件*/
return 0;
}
亲测通过!
static int write_flag=1; /*写文件标志,即是否要将字符串写入文件*/
void function(char *str)
{
int i=0;
do
{
if((str[i++]=='b')&&(str[i]=='y')&&(str[i+1]=='e'))/*字符串中有“bye字串”*/
{ str[i+2]='\0'; /*截断字符串*/
write_flag=0; /*写文件标志置 0 */
break;
}
}while(str[i+2]!='\0');
}
int main()
{
int i,j;
char str[100]={0};
FILE *fp;
fp=fopen("answer.txt","w");
do
{
gets(str);
function(str);
fprintf(fp,"%s\n",str);
}while(write_flag);
fclose(fp);
while(1) gets(str);/*接收其他无效字符串。自己添加程序结束条件*/
return 0;
}
亲测通过!
参考资料:自己写的
温馨提示:答案为网友推荐,仅供参考
第1个回答 2020-07-18
首先利用fopen函数建立一个可以写入的文件,然后利用fprintf函数写出你想写入的东西。具体语句如下:
FILE
*fp;//文件指针
char
ch='A';
fp=fopen("1.txt","w");//建立一个可写入的文件1.txt
fprintf(fp,"%c\n",
ch);//往1.txt中写入字符
如果想写入多个字符,可利用循环
FILE
*fp;//文件指针
char
ch='A';
fp=fopen("1.txt","w");//建立一个可写入的文件1.txt
fprintf(fp,"%c\n",
ch);//往1.txt中写入字符
如果想写入多个字符,可利用循环
第2个回答 2008-11-16
去掉最后一行就可以了啊