Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C语言中用write输出单个字符?_C_Function_Unix - Fatal编程技术网

如何在C语言中用write输出单个字符?

如何在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

有人能告诉我如何在只使用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(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;
}