我有一个相对简单的web服务器,我用C++编写。它可以很好地服务于文本/html页面,但是它的编写方式似乎无法发送二进制数据,我真的需要能够发送图像。
我一直在搜索,但找不到这个问题的具体答案,这个问题是用实际的C++ (fstream,而不是使用文件指针等)编写的。虽然这类事情必须是低级别的,而且很可能需要处理C样式数组中的字节,但我希望代码尽可能地使用C++。
我尝试过几种方法,这就是我目前所拥有的:
int sendFile(const Server* serv, const ssocks::Response& response, int fd)
{
// some other
huffmanFile.open("code.txt");
while(huffmanFile.peek() != EOF)
{
cin >> letters[c] >> numbers[c];
c++;
}
huffmanFile.close();
输入文件:A 23 B 35 C 47 D 0 E 12 F 11 G 92 H 18 I 17
在执行完这个之后,我尝试从我的main函数中输出c,但是它不会离开while循环。我已经试过调试了,但是没有用。我已经将其与我编写的许多其他程序进行了比较,但仍然一无所获。
我正在尝试理解EOF和EOL,以及C++ iostream实际上是如何工作的。
在将输入通过getchar()或getche()输入到char变量时,我发现如果我编写如下行:
char a;
a = getche(); // it returns char '\r' if pressed enter
a = getchar(); // it returns char '\n' if pressed enter
为什么是这些价值?
究竟是什么让C++认为我们已经没有输入了(,即总是使C++认为它在输入的末尾?)。
当读取/写入一个具有以'\n
这是使用C++编程原理和实践中的一个练习。我设法让它开始工作了,但不知怎么的,我觉得不太对劲。我希望有任何关于如何简化/改进解决方案的建议。
特别是在进行最佳检查时,请检查是否输入了“\”。我觉得创建两个额外的字符串变量,然后使用std::stoi将它们转换为int是非常低效的。我是C++的新手,所以请原谅我的无知。感谢你的反馈。
问题
编写一个在while循环中读取两个整数并打印它们的程序。继续操作,直到用户输入“AC.26”为止。
#include
#include
int main(){
int a, b;
std::string _a, _b;
while (
我正在尝试拾取C++,但在读取文本文件时遇到以下错误。知道为什么吗?
输入:
This is a test.
A test, with tabs and too many spaces.
If this is a good one,
then all will be well.
输出:
then all will be well. too many spaces.
代码:
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <string>
我正在使用这本书学习C++:编程原理和使用C++的实践。在第三章的末尾,作者问到是什么终止了对int的读取输入,我认为输入到输入的读取会在输入空格中终止,就像字符串类型一样,但是在编写这个程序之后,我有一些疑问:
constexpr double cm_per_inch = 2.54;
double lenght = 1;
char unit = 0;
cout << "Please enter a lenght followed by a unit (c or i):\n";
cin >> lenght >> unit;
if
我尝试用C处理一个文本文件,读取每一行并在分隔符"\t“上拆分它。代码可以工作,但在文件末尾输出一行:
测试文件是:
0 zero
0 one
0 two
守则:
void ReadClass(){
char line[1000];
char *ptr;
int class;
char word[1000];
FILE *fin;
fin = fopen("class_file", "rb");
if (fin == NULL){
printf("ERROR, class f
如何让下面的代码读取正确的文本。在我的文本文件中有Hello welcome to C++,但是在文本的末尾,它有一个新行。使用下面的代码,我的readBuffer总是包含额外的字符。
DWORD byteWritten;
int fileSize = 0;
//Use CreateFile to check if the file exists or not.
HANDLE hFile = CreateFile(myFile, GENERIC_READ, FILE_SHARE_READ, NULL,
OPEN_EXISTING, F