以下代码是C项目的一部分。该项目有一个头文件,其中定义并声明了两个结构体。 即时消息德语,所以我的文本是,但那只是输出和变量的名称。 我的问题是:在大小写字符串必须写入一个字符数组。它给了我错误“无法将char *转换为char”。我在那里放箭。 我试图通过使用gets,put或类似的东西来解决这个问题,而且我也无法在互联网上找到帮助的答案。 也许你可以帮我吗?C编译器在将字符串分配给字符数组时,称“无法将char *转换为char”
#if !defined(krftst_cpp)
#define krftst_cpp
#include "typ1.h"
krftst()
{
int antww;
FILE *datei;
if((datei = fopen("datei.dat", "r+b")) == NULL)
{
fprintf(stderr, "Konnte Datei nicht öffnen");
return 1;
}
printf(" Folgende Kraftstoffe stehen zur Wahl:\n");
printf(" -1 Super\n");
printf(" -2 E10\n");
printf(" -3 Diesel\n");
printf(" -4 Biodiesel\n");
printf(" -5 Gas\n\n");
printf(" Sollten sie ein Elektroauto fahren, geben sie bitte 6 ein.\n");
printf(" Bei einem Hybridauto normal den Kraftstoff angeben.\n);
scanf("%d",&antww);
switch(antww)
{
case 1:
Werte.krftst[20]= "Super"; <--
break;
case 2:
Werte.krftst[20]= "E10"; <--
break;
case 3:
Werte.krftst[20]= "Diesel"; <--
break;
case 4:
Werte.krftst[20]= "Biodiesel"; <--
break;
case 5:
Werte.krftst[20]= "Gas"; <--
break;
case 6:
Werte.krftst[20]="Elektro"; <--
printf("Geben sie bei Kraftstoffverbrauch statt 'l' 'W' ein, um in Wattt zu rechnen.");
break;
default:
printf("Bitte geben sie nur die Zahlen 1 bis 6 ein!");
}
}
#endif
werte的声明:
struct Daten {
char start[20];
char ziel[20];
int km;
int vrbr;
char dnstf;
char name[30];
char knzchn[10];
char krftst[20];
char einh;
char dtm[12];
};
你在哪里定义'Werte'?更具体地说,“Werte.krftst”的类型是什么? –
Werte.krftst [20]将存储一个字符,但通过使用Werte.krftst [20] =“Super”,您正在指定一个指针。 – Rahul
什么是'Werte.krftst'?你想使用'strncpy'吗? – HAL