我怎样才能重置指向命令行输入或文件开头的指针.例如,我的函数是从文件中读取一行并使用getchar()将其打印出来
while((c=getchar())!=EOF)
{
key[i++]=c;
if(c == '\n' )
{
key[i-1] = '\0'
printf("%s",key);
}
}
Run Code Online (Sandbox Code Playgroud)
运行之后,指针指向EOF im假设?如何让它再次指向文件的开头/甚至重新读取输入文件
即我输入(./function <inputs.txt)
在创建 mysql 连接时遇到一些麻烦。mysql 实例在系统首选项中运行,我已确保 mysql 配置文件位于正确的位置(测试设置已通过)。当我进入测试数据库连接时,我在所有三个部分都得到红叉。(打开数据库连接,获取服务器版本,获取服务器操作系统)。运行 mac 10.10.2。将连接名称设置为 home 主机名 127.0.0.1,端口设置为 3306,用户名设置为 root,密码设置为我的计算机 root 密码,默认架构也设置为 home。有任何想法吗?
我正在尝试malloc在结构中的数组,但我运行程序时不断收到分段错误.
这个compares功能只是我正在测试的东西,所以它不应该成为问题的一部分
typedef struct {
char *string;
} prod_t;
int
main(int agrc, char **argv){
int i = 0;
prod_t *c = NULL;
char str2[100] = "abcd";
c->string = (char *) malloc( 5 * sizeof(char));
strcpy(c->string,str2);
compares(c->stock,str2,i);
return 0;
}
Run Code Online (Sandbox Code Playgroud) 想知道如何在数组中存储不同的字符串.例如,用户将输入'qwe',然后程序将其存储在数组变量[0]中.输入另一个字符串然后将其存储为变量[1],依此类推
int
main(int argc, char *argv[]) {
char variable[1000];
int i;
printf("enter a variable\n");
scanf("%s", variable);
for (i = 0; ??? ;i++) {
printf("The variable entered was: %s\n",variable[i]);
}
return 0;
Run Code Online (Sandbox Code Playgroud)
我是C新手,所以我不知道我在做什么.但这就是我到目前为止所提出的,并想知道我是否可以得到一些帮助填补其余的谢谢!
我希望能够将csv文件转换为列表列表,其中包含每个列表的列值.例如:
6,2,4
5,2,3
7,3,6
Run Code Online (Sandbox Code Playgroud)
成
[[6,5,7],[2,2,3],[4,3,6]]
Run Code Online (Sandbox Code Playgroud)
我只是设法打开文件,只有成功打印成行
with open(input,'rb') as csvfile:
csv_file = csv.reader(csvfile)
header = csv_file.next()
raw_data = csv_file
Run Code Online (Sandbox Code Playgroud) 如何访问位于另一个结构内部的结构内部的数组/其他类型的数据.这是我到目前为止所尝试的,它的出现c并没有宣布.我知道我可以声明c,prod_t *c但它失败了我试图做的事情的目的,因为它不存在于root(a_tstruc)内部.
typedef struct {
char *name;
} prod_t;
typedef struct {
prod_t *c;
} a_t;
int
main(int agrc, char **argv){
a_t *root = malloc(sizeof(a_t));
root->c=malloc(sizeof(prod_t));
c->name = malloc( 5 * sizeof(char));
strcpy(c->name, "abc");
printf("%s",root.c->name);
return 0;
}
Run Code Online (Sandbox Code Playgroud) 当输入为'1 2 3 4 5 6 7 8 9 10 11'时预期输出应与输入相同.然而输出是'1 2 3 4 5 6 7 8 9 10 -1850774484'.仅在输入的整数超过10时才会发生.我的realloc系列在哪里出错了
#include <stdio.h>
#include <stdlib.h>
#define INITIAL_SIZE 10
int
main(int argc, char **argv){
int i = 0, num, size = 0, n = INITIAL_SIZE;
int *A;
A = malloc(n * sizeof(int));
if(A == NULL){
printf("OUT OF MEMORY\n");
exit(EXIT_FAILURE);
}
while(scanf("%d",&num) == 1 && getchar()!='\n'){
A[i] = num;
i++;
size++;
if (size >= n){
n = n * 2;
A = …Run Code Online (Sandbox Code Playgroud) 理解指针以及如何将它们与函数一起使用时遇到很多麻烦.尝试编写一个函数,它接受任意大小的字符数组并将其保存在struct.This是我尝试但得到seg错误.
#define LENGTH 50
typedef struct{
char *pass;
int length;
}pass_t;
void createNewPassword(pass_t *password);
int main(int argc, char *argv[]) {
pass_t *password=NULL;
createNewPassword(password);
printf("%d",password->length);
}
void
createNewPassword(pass_t *password){
char c;
int i, n=LENGTH;
if (!(password->pass=malloc((n+1)*sizeof(char)))) {
printf("Out of memory, exiting.\n");
exit(EXIT_FAILURE);
}
printf("Enter a new password: ");
while((c=getchar())!='\n'){
if (i>=n){
n *= 2;
if (!(password->pass=realloc(password->pass,
(n+1)*sizeof(char)))) {
printf("Out of memory, exiting.\n");
exit(EXIT_FAILURE);
}
}
password->pass[i++]=c;
}
password->pass[i+1]='\0';
password->length=i;
}
Run Code Online (Sandbox Code Playgroud)