putchar输出-c语言

比如输入abcd and edfg#,输出的时候是一个一个的输出字符还是abcd and edfg一起输出?


#include 
#include 
int main(){
    FILE *fp;
    char filename[10];
    printf("请输入所用的文件名:");
    scanf("%s",filename);
    char ch;
    if((fp=fopen(filename,"w"))==NULL){
        printf("无法打开此文件\n");
        exit(0);
    }    
    ch=getchar();
    printf("请输入一个准备存储到磁盘的字符串(以#结束):");
    ch=getchar();
    while(ch!='#'){
        fputc(ch,fp);
        putchar(ch);
        ch=getchar();
    } 
    fclose(fp);
    putchar(10);
    return 0;
}

每次putchar输出一个字符,循环不断读取字符,直到#,所以总共是全部输出

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/756793
  • 除此之外, 这篇博客: C语言之ABCDEFG中的 答案 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    下面展示 实现代码

    #include <stdio.h>
    #include <iostream>
    #include <string.h>
    using namespace std;
    int main()
    {
    	int T;
    	int i, j;
    	int da[7] = {3, 2, 1, 2, 3, 3, 1};//定义大写字母的笔画 
    	int xiao[7] = {1, 1, 1, 2, 1, 2, 1};
    	while(scanf("%d",&T) != EOF)
    	{
    		getchar();
    		for(i = 0; i < T; i++)
    		{
    			char arr[100];
    			gets(arr);
    			int bihua = 0;
    			int l = strlen(arr);
    			for(j = 0; j < l; j++)
    			{
    				if(arr[j] <= 'G' && arr[j] >= 'A')
    				{
    					bihua += da[arr[j] - 'A'];
    				}
    				else
    				{
    					bihua += xiao[arr[j] - 'a'];
    				}
    			}
    			cout << bihua << endl;
    		}
    	} 
    	return 0;
    } 
    
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^