楼主:
hunandy14 (Charlott.HonG)
2021-05-22 02:06:43代码在VS2019上执行是正常的,但是在gcc上却出了奇怪的状况
想请问为什么这段代码里面的 cout 只要结尾没有 endl 就没办法输出了
https://replit.com/@hunandy14/svtest
网站可以直接执行,错误的情况跟我在电脑上跑的是一样的
电脑上的gcc版本
gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04)
g++ -std=c++17 -o main main.cpp; ./main
作者:
oToToT (å±å©)
2021-05-22 04:34:00在 repl 上感觉是被 \r 坑了而已,它实际上是有印出来的喔喔,你电脑上也是 ubuntu ,那就是 \r 的问题吧你可以试试看 printf("2\r"); 你可能也不会看到它的输出或者 printf("2\r1") 你可能只会看到一个 "1",因为 \r 把要印的 cursor 又移到最前面了,所以前面的 2 会被后面的输出盖掉,导致你没看到它
作者:
Lipraxde (Lipraxde)
2021-05-22 12:41:00./main > out.txt,再把 out.txt 开起来看,你就知道是不是真的没输出了
作者:
LPH66 (-6.2598534e+18f)
2021-05-22 14:08:00这样说吧, 写 C/C++ 只有很少的机会会写出 \r如果只是单纯要换行的话 \n 就够用了会用 \r 的大概只有 (1) 萤幕显示单行更新 (如单行进度条)(2) 处理的根本就是二进制资料单行更新原理就是前几楼提的 \r 的作用: 移光标到这行开头C++ 的 endl 其实只是印出 "\n" 后加 flush 而已
作者:
Lipraxde (Lipraxde)
2021-05-22 19:50:00dos2unix <- 好用
作者:
rex0707 (我就是我)
2021-05-29 19:11:00推楼上 我以前也遇过从win复制文字档到centos会有问题