gpt4 book ai didi

c - 从 C 中用空格分隔的文件中读取两个字符串

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

我有以下代码:

#include<iostream>
#include<stdio.h>
using namespace std;
int main(){
char* username, *password;
cout<<"Content-type: text/html"<<endl<<endl;
FILE *in = fopen("useri.txt","r");
while (fscanf(in,"%s %s",username, password) != EOF) {
cout<<username<<endl;
}
fclose(in);
}

文件看起来像:

admin admin

由于某种原因,特定文件中的所有文本都被读取到 username 变量中。代码按原样打印出我文件中的 2 个值(在不同的行上),但这是错误的,因为它应该只打印 1。

我一尝试打印password,程序就退出了,没有错误(甚至没有段错误)。我做错了什么吗?

注意:我需要它保留 C,而不是 C++(cout 部分除外,因为我很懒)。

最佳答案

内存没有分配给变量。

char* username, *password;

使用malloc() 动态分配内存。

不强制只使用动态内存。您也可以使用静态内存。即

//100 is just a sample value. 
//Modify as per your requirement.
#define MAX_STR_LEN 100

char username[MAX_STR_LEN], password[MAX_STR_LEN];

关于c - 从 C 中用空格分隔的文件中读取两个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13135428/

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