Я работаю над проектом, который включает чтение и / или запись из текстового файла.В настоящее время единственными данными, которые я пытаюсь извлечь из текстового файла, являются имена.Моя цель состоит в том, чтобы иметь возможность хранить конкретные имена в массиве указателей символов, так что Char[n]
будет присвоено имя для любого заданного n в массиве.
Проблема, с которой я, похоже, сталкиваюсь, заключается в том, чтоЯ устанавливаю свой элемент указателя символов на другой массив символов, в котором я сохраняю значение чтения из текстового файла.
Например, если я читаю имя из текстового файла и задаю Name[]
равнымзатем это имя затем устанавливает Char[0] = Name
, тогда Char[0]
всегда будет меняться, когда Name
делает.
Я, например, пытался записать строку непосредственно в Char[0]
, но затем моя программа просто зависалапосле того, как я попытаюсь прочитать и сохранить значение.Поэтому я прибег к этому извилистому пути назначения отдельного массива символов для сканируемого имени и установки для него одного из своих элементов.
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main()
{
FILE * inf = fopen("UserNames.txt", "r");
char User[125];
int err, TopNameNumber = 10;
char *UserNames[TopNameNumber];
if (inf == NULL)
{
printf("ERROR: No name file detected.");
return 0;
}
for(int i = 0; i < TopNameNumber i++)
{
//This reads from my .txt file
err = fscanf(inf, " %s", User);
if(err == EOF)
break;
//This shows me what user was read from the text file
printf("User read %d: %s\n", i+1, User);
//Program assigns the pointer address of User to Names[i]
//This is where I'm having trouble
UserNames[i] = User;
}
for(int c = 0; c < 3; c++)
{
// This always just prints out the last name read from the .txt file
for every name
printf("Name #%d: %s\n", c, UserNames[c]);
}
return 0;
}
Я занимался этим несколько дней иЯ нашел несколько интересных путей, которые могли бы решить мою проблему, например, копирование строки с помощью функции strcpy()
или, возможно, приведение User
к чему-либо.Однако пока все безрезультатно.
Буду признателен за любой совет относительно того, что, по вашему мнению, является наилучшим решением, если решение здесь неочевидно.Я хотел бы избегать делать все персонажи за персонажем, но я полагаю, что я был бы готов в долгосрочной перспективе.
Я прошу прощения за, возможно, неясный вопрос, я впервые задаю его, и япросто пытаюсь дать как можно больше контекста:)
Мой код компилируется без предупреждений или ошибок на данный момент.