社区讨论

萌新第一次使用电脑,求助有关 powershell

学术版参与者 6已保存回复 14

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
14 条
当前快照
1 份
快照标识符
@mj42r1n5
此快照首次捕获于
2025/12/13 17:09
2 个月前
此快照最后确认于
2025/12/15 20:25
2 个月前
查看原帖
这个 powershell 怎么这么坏
CPP
#include <bits/stdc++.h>
using namespace std;
int main() {
	cout << "Hello World!" << endl;
	return 0;
}
把它编译并运行,使用 g++ main.cpp -o main.exe./main.exe > out.txt
G++ 版本:gcc version 14.2.0
直接打开那个文本文件,发现输出正常。
实际上哪个文件的状态是这样的。
运行这个代码:
CPP
#include <bits/stdc++.h>
using namespace std;
int main() {
	ifstream ifs("out.txt");
	for (int i = 0; i <= 100; i++) {
		char c = ifs.get();
		cout << '[' << c << ']' << (int)c << endl;
		// if (c == EOF) {
		// 	return 0;
		// }
	}
}
发现输出:
CPP
[]-1
[-2
[H]72
[]0
[e]101
[]0
[l]108
[]0
[l]108
[]0
[o]111
[]0
[ ]32
[]0
[W]87
[]0
[o]111
[]0
[r]114
[]0
[l]108
[]0
[d]100
[]0
[!]33
[]0
]13
[]0
[
]10
[]0
[]-1
[]-1
[]-1
[]-1
// 后面重复
这样的东西。
先出现一个 EOF,之后是一个神秘 0xfe,之后是每输出一个正常字符就给我输出一个 '\0'
换成 cmd 正常输出。
有没有遇到过相似问题的,求解决办法。
直接使用powershell/cmd套powershell/VSCode 的内置终端的powershell效果一样,大概是 powershell 底层实现问题,与外面的壳无关。

回复

14 条回复,欢迎继续交流。

正在加载回复...