gpt4 book ai didi

c++ - 错误 : use of undeclared identifier 'buffer' C++

转载 作者:行者123 更新时间:2023-11-30 03:22:55 25 4
gpt4 key购买 nike

我一直在同一行两次收到此错误,但在不同的地方(同一问题):

Documents/JoeInstaller.cpp:33:43: error: use of undeclared identifier 'buffer'
memset(buffer, (char)NULL, sizeof(buffer)))
^
Documents/JoeInstaller.cpp:33:16: error: use of undeclared identifier 'buffer'
memset(buffer, (char)NULL, sizeof(buffer)))

这是我目前的代码:

#include <iostream>
#include <vector>
#include <string>
#include <fstream>
#include <stdio.h>
#include <curl/curl.h>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cstdio>
#include <cstring>
#include <cstdlib>

using namespace std;

float pythonver;

int main(int argc, char* argv[]){
cout << "Press enter\n::";
if (cin.get() == '\n')
char buffer[1000];
FILE* progOutput;
progOutput = popen("which python3.6", "r");
if (!progOutput) {
cerr<<"npopen failedn";
exit(1);
}
memset(buffer, (char)NULL, sizeof(buffer)))
if (fread(buffer, sizeof(char), sizeof(char) * sizeof(buffer), progOutput) < 0) {
cerr<<"nfread failedn";
exit(1);
}
if (pclose(progOutput) < 0) {
cerr<<"npclose failedn";
exit(1);
}
pythonver << atof(buffer<<endl.c_str());
if (pythonver) {
cout << "Hooray! Now you need to install python3.6 or later from source!";
}

总之,我要做的是获取 python 的版本。我正在通过 popen 执行此操作并将结果保存到字符串中。执行此操作时遇到错误。

最佳答案

这一行少了一个花括号:

if (cin.get() == '\n')

因此,branch only covers the next line (见页尾的注释),这是buffer的声明:

if (cin.get() == '\n')
char buffer[1000];
// buffer is out of scope here

根据您的需要,您需要在整个 block 或其中的某些部分周围添加花括号,以在使用时保持 buffer 存活。

关于c++ - 错误 : use of undeclared identifier 'buffer' C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50776169/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com