gpt4 book ai didi

c++ - 返回值是部分的而不是完整的

转载 作者:太空宇宙 更新时间:2023-11-04 15:25:02 25 4
gpt4 key购买 nike

我有一个 file.txt,我在其中读取每一行,但我不想处理这些行。该文件包含 IP、昵称和一些值。我只想将 IP 地址保存到另一个文件,但在此之前我正在检查我的函数 (char* get_ip(char arr[])) 返回的结果。
问题是返回值,它只显示了一部分,例如:

普通 IP 地址:66.55.44.33
我的返回:66.55.44

编辑:

有 2 个函数:main()get_ip()

//<----------- FUNCTION get_ip() -------------------- ><br />

char* get_ip(char buff[]){

char line[32];

for(int i = 0; i < sizeof(buff); i++){
if(buff[i] == '.'){
if(isdigit(buff[i + 1])){
i = 0;
while(buff[i] != ' '){
line[i] = buff[i];
i++;
}
break;
}
}
}

if(isdigit(line[0]))
return line;
else
return 0;
}

//<------------ FUNCTION int main() --------------------->


int main(){
// variable, opening folder etc.

char buff[64], *line;

while(!feof(fph)){
fgets(buff, 63, fph);
line = get_ip(buff);

if(line)
cout << line << "\n";
}

} // main() func. end

最佳答案

当前预期行为未定义,因为 line 是局部变量,您不能从函数返回。如果您希望它与 buff 分开,您应该使用 malloc 而不是声明 char line[32];

关于c++ - 返回值是部分的而不是完整的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10516630/

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