是否可以在不使用printf函數的情況下使用C編寫「hello world」程序? (同時仍保持相對程序在幾行)C中沒有printf的「Hello world」?
回答
這應該工作:
int main (void)
{
puts("Hello, World!");
return 0;
}
爲什麼你不希望用printf?我想不出任何理由。
這不是我我不想使用它,這是一種「有可能做」的問題,因爲我是C的新手。 – user1869465 2013-02-10 05:04:24
實際上,如果你的用例只是一個普通的字符串,並且在最後換行,它會使更多感覺不_使用'printf'。 'puts'幾乎肯定是更高效的,因爲它不必擔心格式化字符。 +1,'main'改爲其中一個規範形式:-) – paxdiablo 2013-02-10 05:05:54
@paxdiablo我已經看到GCC優化'printf(「字符串字面量)」;'放入'puts(「字符串字面量」);'。我發現那是因爲它破壞了我使用動態庫注入來劫持'printf()'的嘗試:O – 2013-02-10 06:35:28
write(stdout, "hello world", strlen("hello world"));
Err,'stdout'是_stream,_不是文件描述符。也許你的意思是'fwrite'?特別是因爲C本身沒有'寫'。 – paxdiablo 2013-02-10 05:04:22
Hrm,對。將stdout更改爲數字1. Thx。 – PQuinn 2013-02-10 05:29:04
或2寫入到stderr,並且包含unistd.h用於寫入和strlen的string.h(或者只是把整數值,因爲它是一個常量字符串) – technosaurus 2013-02-10 05:35:05
這是隻使用puts("hello world\n");
#include <stdio.h>
int main(void){
char *s="hello world\n";
while (*s) putchar(*s++);
}
那麼一個荒唐的選擇,如果我們要包含一些無聊的例子(是的,我看着你,technosauraus),我去:
#include <stdio.h>
void makeItSo (char *str) {
if (*str == '\0') return;
makeItSo (str + 1);
putchar (*str);
}
int main (void) {
makeItSo ("\ndlrow olleH");
return 0;
}
只是不要對很長的字符串做到這一點,或者你找出什麼堆棧溢出真的意味着:-)
+1額外的愚蠢作爲扭轉弦是沒有必要的。 :) – 2013-02-10 07:11:19
- 1. C++的Hello World沒有編制
- 2. C++「Hello world」顯示沒有輸出
- 3. c#hello world not compiling
- 4. C++ Eclipse Mac Hello World
- 5. unicode hello world for C?
- 6. 春天的Hello World沒有運行
- 7. Node.js中的Hello world
- 8. Kurento hello world沒有顯示視頻
- 9. OneSignal hello-world網頁 - 沒有通知
- 10. 仿真程序沒有運行hello world
- 11. C++打開的窗口中的Hello World
- 12. 現有DHT的Hello World
- 13. CUDA hello world failed
- 14. JavaScriptCore Hello world nightly
- 15. React-Typescript Hello World
- 16. Linux Shellcode「Hello,World!」
- 17. Android Hello World Exception
- 18. 編譯Hello World
- 19. haskell leksah hello-world
- 20. lauch4j hello world program
- 21. android「hello world」error
- 22. MSDOS「Hello World」EXE
- 23. GreaseMonkey Hello World
- 24. openDatabase Hello World - 2
- 25. JAVA ME Hello World
- 26. ASP.NET Beginner(Hello World)
- 27. Hello World在C#中不使用分號
- 28. Java中的JavaPOS Hello World
- 29. OGNL Java中的Hello World
- 30. PyroCMS中的Hello World模塊
您可以隨時使用puts,fwrite等。 – nhahtdh 2013-02-10 04:55:01
'write(1,「hello world」,11);' – technosaurus 2013-02-10 04:56:10
@technosaurus:這不是C標準的一部分,但可能是其他標準的一部分。 – nhahtdh 2013-02-10 04:57:47