gpt4 book ai didi

c - 使用 "getchar"更新数组中的值

转载 作者:行者123 更新时间:2023-11-30 17:49:56 25 4
gpt4 key购买 nike

我使用一个数组来表示一个表,我想使用“getchar”来更新表中的值。

 Original table:  0 0 0 0     Input table: 1 0   Output table: 1 0 0 0
0 0 0 0 1 1 1 1 0 0
0 0 0 0 0 0 0 0

struct dimension {// represent the number of row and number of col of a table
int num_row;
int num_col;
};

void set_value(int t[],
const struct dimension *dim,
const int row,
const int col,
const int v) {
t[row*dim->num_col+col] = v;
}//update the value in a table

void update (int t[],
const struct dimension *table_dim,
struct dimension *input_dim) {
for (int k=0; k<(input_dim->num_row); k++){
for (int l=0; l<(input_dim->num_col); l++){
array[l] = getchar();
table_set_entry(array, input_dim, 0, 0,array[l]);
if (array[l] == '\n') break;
}
}

}

int main(void) {
int o[12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
const struct dimension a = {3,4};
struct dimension in_dim = { 4, 5 };
update(o,a,in_dim);

}

我的想法是我应该创建一个表并首先将输入表的所有值设置为零。然后根据 getchar() 进行更改。最后更新原表。但是,我不知道如何使用 getchar 来更改该值。有人可以帮我吗?如果有什么让您感到困惑,请发表评论。预先感谢。 :)

最佳答案

您可以使用 getchar() 读取整行,如此问题的答案所示:getchar() and reading line by line

这是一个重要的问题。下面是一些 C 代码,它将读取一个表,但受到行长度和最多 10 行的一些限制。错误检查也很少。每一行都存储为一个字符串,即一行。您必须稍后在循环中解析每行的字符串才能找到每列的值。您可以使用 strtok() 或 regex() (“man 3 regex”)来执行此操作。

#include <stdlib.h>
#include <stdarg.h>
#include <stdio.h>

#define MAXLINE 1024
#define MAXROWS 10

int
main() {
int inRows = 0;
int inCols = 0;
int i;
int c;
int line_length = 0;

char rows[MAXROWS][MAXLINE];

printf("How many rows in the input table? ");
scanf("%d", &inRows);
getchar(); // get and throw away newline
printf("How many columns in the input table? ");
scanf("%d", &inCols);
getchar(); // get and throw away newline

if (inRows < 1 || inCols < 1 || inRows > MAXROWS) {
printf("Table dimensions of %d rows by %d cols not valid.\n", inRows, inCols);
exit(1);
}

// read inRows lines of inCols each.
for (i = 0; i < inRows; i++) {
printf("Input table data for row #%d in the format col1 col2...\n", i);
while ((c = getchar()) != '\n' && line_length < MAXLINE - 1) {
rows[i][line_length++] = c;
}
rows[i][line_length] = 0; // nul terminate the line
}
}

关于c - 使用 "getchar"更新数组中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17538586/

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