putc和putchar
时间: 2024-05-08 19:21:08 浏览: 14
`putc` 和 `putchar` 都是用于输出单个字符的函数,不同之处在于它们的参数类型和返回值类型不同。
`putc` 的原型为:
```c
int putc(int ch, FILE* stream);
```
其中,`ch` 表示要输出的字符,`stream` 表示输出流。该函数将字符 `ch` 输出到 `stream` 指定的文件中,并返回成功输出的字符数,如果输出失败则返回 EOF。
`putchar` 的原型为:
```c
int putchar(int ch);
```
其中,`ch` 表示要输出的字符。该函数将字符 `ch` 输出到标准输出流中,并返回成功输出的字符数,如果输出失败则返回 EOF。
需要注意的是,`putchar` 是一个宏定义,其实现实际上调用了 `putc` 函数。因此,`putchar` 函数的功能与 `putc` 函数相同,只不过它只能输出到标准输出流中。
相关问题
#include<stdio.h> #include <stdlib.h> int main() { FILE *fp; int i,j,n,il; char c[100],t,ch; if((fp=fopen("al","r"))==NULL) { printf("\ncan not open file\n"); exit(0); } printf("file A:\n"); for(i=0;(ch=fgetc(fp))!=EOF;i++) { c[i]=ch; putchar(c[i]); } fclose(fp); il=i; if((fp=fopen("b1","r"))==NULL) { printf("\ncan not open file\n"); exit(0);} printf("\nfile B:\n"); for(i=il;(ch=fgetc(fp))!=EOF;i++) {c[i]=ch; putchar(c[i]); } fclose(fp); n=i; for(i=0;i<n;i++) for(j=i+1;j<n;j++) if(c[i]>c[i]) {t=c[i]; c[i]=c[j]; c[j]=t; } printf("\nfile C:\n"); fp=fopen("cl","w"); for(i=0;i<n;i++) { putc(c[i],fp); putchar(c[i]); } printf("\n"); fclose(fp); return 0; }
这段程序是用来做什么的?
这段程序是用来将两个文件合并成一个新的文件,并按照字母顺序排序后输出到另一个文件中。其中,文件A和文件B的文件名分别为“al”和“b1”,输出文件的文件名为“cl”。程序的主要功能包括:读取文件A和文件B的内容,将它们合并到一个字符数组c中,然后对字符数组c中的字符按照字母顺序进行排序,最后将排序后的字符输出到文件C中。
f28335 printf
在程序调试时,你想在上位机实现printf功能,并查阅了博客文章,现在总结一下。首先,你需要对28335进行内存配置,具体操作可以参考《CCS6中printf()的使用——TMS320F28335工程printf()的使用》。
其次,你需要重定向fputc、putc、putchar和fputs函数,以确保输出数据完整。你可以使用以下代码进行重定向:
```c
/* SCIa发送字符 */
void SCIa_SendByte(int dat) {
while (SciaRegs.SCIFFTX.bit.TXFFST != 0);
SciaRegs.SCITXBUF = dat;
}
/* 串口打印重定向 */
int fputc(int _c, register FILE *_fp) {
SCIA.SCIa_SendByte(_c);
return _c;
}
int putc(int _c, register FILE *_fp) {
SCIA.SCIa_SendByte(_c);
return _c;
}
int putchar(int data) {
SCIA.SCIa_SendByte(data);
return data;
}
int fputs(const char *_ptr, register FILE *_fp) {
unsigned int i, len;
len = strlen(_ptr);
for (i=0; i<len; i++) {
SCIA.SCIa_SendByte((char) _ptr[i]);
}
return len;
}
```
这样,你就可以在上位机上使用printf函数来进行输出了。希望这些信息对你有帮助。<span class="em">1</span><span class="em">2</span>
#### 引用[.reference_title]
- *1* *2* [DSP28335串口打印 printf](https://blog.csdn.net/weixin_51683280/article/details/125052503)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]