Как работает while ( !feof ( cfPtr ) )?
FILE * cfPtr = fopen( "test.txt", "rb" );
char temp;
for (;;) {
int read = fread( &temp, sizeof( char ), 1, cfPtr );
if (read == 1) {
printf("%c\n", temp);
} else {
if (feof(cfPtr)) {
/*случился конец файла*/
} else if (ferror(cfPtr)) {
/* случилась ошибка */
}
break;
}
}
int val;
extern int val;
struct {char *face, *suit;} aCard = {"Three", "Hearts"};
printf("pattern",..., aCard,...);
printf("pattern",..., aCard.face, aCard.suit,...);
aCard.suit
в первом вызове printf
в вопросе) оказывается лишним.printf("%s %s\n", aCard);
Three Hearts
#include <stdio.h>
void printMAS (int *, int); // это для компилятора или для "имя_файла.h"
void printMAS (int *ptrA, int countptrA){
//передаем массив по указателю и количество элементов
printf ("ptrA[1] = %d\n\n", ptrA[1] );//не суть
for (int i=0; i<countptrA; ++i){
printf ("ptrA[%d] = %d\n",i, ptrA[i] );
}
}
int main(){
int B[]={5,9,10,200,500};
printf ("(sizeof(B)/sizeof(B[0])) = %d\n\n", (sizeof(B)/sizeof(B[0])) );
printMAS(B,(sizeof(B)/sizeof(B[0])));
return 0;
}
char * suit [4] = { "Hearts", "Diamonds", "Clubs", "Spades" };
Как изменить строку, инициализированную при объявлении массива символьных указателей, с помощью scanf?