如何在C语言中用write输出单个字符?
有人能告诉我如何在只使用write函数(而不是printf)的情况下打印单个字母,例如C中的“b”吗 我很确定它使用了如何在C语言中用write输出单个字符?,c,function,unix,C,Function,Unix,有人能告诉我如何在只使用write函数(而不是printf)的情况下打印单个字母,例如C中的“b”吗 我很确定它使用了 #include <unistd.h> 你们中的一些人也能提供一些C初学者的技巧吗 我正在使用UNIX。您已经找到了自己的函数,现在只需将正确的参数传递给它: int handle = open("myfile.bin", O_WRONLY); //... You need to check the result here int count = write(ha
#include <unistd.h>
你们中的一些人也能提供一些C初学者的技巧吗
我正在使用UNIX。您已经找到了自己的函数,现在只需将正确的参数传递给它:
int handle = open("myfile.bin", O_WRONLY);
//... You need to check the result here
int count = write(handle, "b", 1); // Pass a single character
if (count == 1) {
printf("Success!");
}
我确实想用stdout。如何编写显示整个字母表的版本 可以为stdout使用预定义的常量。它被称为
STDOUT\u FILENO
如果你想写出整个字母表,你可以这样做:
for (char c = 'A' ; c <= 'Z' ; c++) {
write(STDOUT_FILENO, &c, 1);
}
for(char c='A';c让我们看看write()
,它说
ssize\u t write(int-fd,const-void*buf,size\u t count);
描述
write()
将指向的缓冲区buf
中的count
字节写入文件描述符fd
引用的文件
根据您的要求,您需要将包含b
的缓冲区地址传递到标准输出
让我们一起看一些代码,好吗
#include <stdio.h>
#include <unistd.h>
int main(void) {
char b = 'b';
write(STDOUT_FILENO, &b, 1);
return 0;
}
#包括
#包括
内部主(空){
字符b='b';
写入(标准输出文件号,&b,1);
返回0;
}
让我解释一下。这里,STDOUT\u FILENO
是unistd.h
中定义的标准输出的文件描述符,&b
是包含'b'
的缓冲区的地址,字节数是1。没有必要为您的问题道歉。缓冲区
将是的地址char myb='b'
和nbyte
大小将是1。毫无疑问,但仅仅因为提到printf()
,我认为OP想要打印到标准输出,而不是文件。在这种情况下,它应该是fprintf()
。如果我错了,请纠正我。@SouravGhosh既然你提到了它,我不确定OP是否真的想写stdout。我确实想用stdout。但是,上面的答案对我有效,而这个答案对我无效。问题-我该如何编写版本来显示整个字母表?我知道char c,这样就可以了还有,什么是“c++;”在这个和大多数场景中使用的是什么?酷!什么是C++部分?我在任何地方都找不到它。还有,没有任何方法可以做它,也许会被替换一段时间?@ ButmiRuST这是一个字符的增量操作。重写< <代码> > <代码>循环> <代码>,循环是一个纯机械的好练习。它很好。试着独立地做。
#include <stdio.h>
#include <unistd.h>
int main(void) {
char b = 'b';
write(STDOUT_FILENO, &b, 1);
return 0;
}