In C .csv Datei einlesen mit strtok möglich?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Ich würde dir Empfehlen die CSV Datei in einen Textbearbeitungs-programm zu öffnen.

In C können Sie eine CSV-Datei (Comma Separated Values) in ein Array einlesen, indem Sie die Datei Zeile für Zeile einlesen und die Werte anhand des Kommas trennen. Hier ist ein Beispiel, wie das in C-Code aussehen könnte:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_ROWS 1000
#define MAX_COLS 100
int main()
{
  char data[MAX_ROWS][MAX_COLS];
  char buffer[MAX_COLS];
  int row = 0;
  int col;
  // Open the CSV file
  FILE* file = fopen("data.csv", "r");
  if (file == NULL) {
    printf("Error: Could not open file\n");
    return 1;
  }
  // Read the file line by line
  while (fgets(buffer, MAX_COLS, file)) {
    col = 0;
    // Tokenize the line by comma
    char* token = strtok(buffer, ",");
    while (token != NULL) {
      

----------------------------------------------

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
  char buffer[1000];
  char* token;
  // Open the CSV file
  FILE* file = fopen("data.csv", "r");
  if (file == NULL) {
    printf("Error: Could not open file\n");
    return 1;
  }
  // Read the file line by line
  while (fgets(buffer, 1000, file)) {
    // Tokenize the line by comma
    token = strtok(buffer, ",");
    while (token != NULL) {
      printf("%s\n", token);
      token = strtok(NULL, ",");
    }
  }
  // Close the file
  fclose(file
jasmin8911 
Fragesteller
 16.01.2023, 17:36

Kann ich so aber auch das Datum z.b 07/01/1986 einlesen? Denn das hat ja das Sonderzeichen /. Wenn ich das richtig verstehe kann ich so, wie du sagtest, jede Zeile in einem separaten Array speichern?

0
alexthenr14  16.01.2023, 18:04
@jasmin8911

Wenn das mit den / nicht funktioniert kannst du es ja durch ein anderes Zeichen ersetzen

1