Hello, my problem is the following , in the topic created by Rafael.
About problem reading strings.
You asked about ordering the t-shirts in c and then had the reply from Rafael Bluhn.
But I want to use with files reading a "file.txt" that will contain the data needed to pass the values to the structure that is in Rafael's code thus sorting name, color, size and then saving the changed data in another "file.txt, then print the ordered data on the screen.
I have the code part to open the file but I can not gather the information (which starts with an integer after strings) to move to Raphael's structure.
code
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void removeNovaLinha( char *str );
int main( int argc, char *argv[] )
{
FILE *fp;
int aux, tamanho;
char buffer[ 256 ];
char **listaNomes;
char *nome;
fp = fopen( "documento.txt", "r" );//digitar o nome do documento que esta na mesma pasta que o programa .c
//o arquivo deverá conter o "documento.txt" com os dados criados pelo Rafael
if ( fp == NULL ) {
printf( "Erro: nao posso abrir o arquivo %s!\n","documento.txt" );
exit( EXIT_FAILURE );
}
if ( !fscanf( fp, "%d\n", &tamanho ) ) {
printf( "Erro: O arquivo deve comecar com um num. inteiro\n" );
exit( EXIT_FAILURE );
}
listaNomes = calloc( tamanho, sizeof( char * ) );
if ( listaNomes == NULL ) {
printf( "Erro: nao posso alocar memoria!\n" );
exit( EXIT_FAILURE );
}
//preenche a lista de nomes
for ( aux = 0; aux < tamanho; aux++ ) {
fgets( buffer, 256, fp );
removespaco( buffer );
nome = calloc( strlen( buffer ) + 1, sizeof( char ) );
strcpy ( nome, buffer );
listaNomes[ aux ] = nome;
}
// fecha o arquivo
fclose( fp );
//imprime a lista de nomes
for ( aux = 0; aux < tamanho; aux++ )
printf( "%s\n", listaNomes[ aux ] );
//libera a memoria alocada
for ( aux = 0; aux < tamanho; aux++ ) {
nome = listaNomes[ aux ];
free( nome );
}
free( listaNomes );
return EXIT_SUCCESS;
}
//função para remover o espaço entre os dados.
void removespaco( char *str )
{
int tamanho;
tamanho = strlen( str );
if ( str[ tamanho -1 ] == '\n' )
str[ tamanho - 1 ] = '
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void removeNovaLinha( char *str );
int main( int argc, char *argv[] )
{
FILE *fp;
int aux, tamanho;
char buffer[ 256 ];
char **listaNomes;
char *nome;
fp = fopen( "documento.txt", "r" );//digitar o nome do documento que esta na mesma pasta que o programa .c
//o arquivo deverá conter o "documento.txt" com os dados criados pelo Rafael
if ( fp == NULL ) {
printf( "Erro: nao posso abrir o arquivo %s!\n","documento.txt" );
exit( EXIT_FAILURE );
}
if ( !fscanf( fp, "%d\n", &tamanho ) ) {
printf( "Erro: O arquivo deve comecar com um num. inteiro\n" );
exit( EXIT_FAILURE );
}
listaNomes = calloc( tamanho, sizeof( char * ) );
if ( listaNomes == NULL ) {
printf( "Erro: nao posso alocar memoria!\n" );
exit( EXIT_FAILURE );
}
';
}'
Thank you very much in advance.